Awstats per Cronjob aktualisieren

Alles, was Perl betrifft, kann hier besprochen werden.

Awstats per Cronjob aktualisieren

Postby Grantler » 14. July 2008 09:21

Hallo,

mich treibt hier ein Problem zum Wahnsinn:

Seit März läuft Awstats 6.7 auf meinem Webspace ohne Probleme, mit
der Einschränkung, daß es nur über den Browser aktualisiert wird.

Wenn ich einen cronjob einrichten will, um AWstats automatisch zu aktualisieren, fangen die Probleme an.

ich habe zwei Perl-Skripts ausprobiert:

1. awstats.pl -config=<mydomain>.de -update
2. awstats_updateall.pl now -awstatsprogram=html/cgi-bin/awstats.pl

Zuerst bekam ich folgende Fehlermeldung:

Error: AWStats database directory defined in config file by 'DirData' parameter (../AWdata) does not exist or is not writable.

Das konnte ich fixen, indem ich die Daten in das gleiche Verzeichnis
legte wie awstats.pl d.h. in /cgi-bin.

danach kam das Gleiche in Grün:

Error: Couldn't open server log file "../../log/access_log" : No such file or directory.


Die beiden Pfade sind in awstats.<domain>.conf wie folgt definiert:

LogFile="../../log/access_log"
DirData="../AWdata"

Diese relativen Pfade sind nicht sehr schön, aber so funktioniert es.
Mein Webspace liegt auf einem Apache-Server und wird per Confixx 3
administriert.

Die Angabe direkter Pfade zu den Logdateien ( z.B. /log/access_log)
oder zu den Daten (z.B. /html/AWdata) wird mit. oben angegebenen
Fehlermeldungen quittiert.

Die Verzeichnisse /log und /html liegen auf der obersten (für mich)
erreichbaren Ebene (wie gesagt, kein Root-Server).
Die Rechte auf die Verzeichnisse sind auf chmod 755 überprüft worden.


Ich habe gestern den ganzen Tag das I-net befragt, aber ich drehe
mich im Kreis. Nix funktioniert. Könnt Ihr mirt helfen ?

Gruss, Grantler
Grantler
 
Posts: 5
Joined: 14. July 2008 00:04

Re: Awstats per Cronjob aktualisieren

Postby Nobbie » 14. July 2008 13:19

Grantler wrote:Die Angabe direkter Pfade zu den Logdateien ( z.B. /log/access_log)
oder zu den Daten (z.B. /html/AWdata) wird mit. oben angegebenen
Fehlermeldungen quittiert.


Ne, dann hast Du hier was falsch wiedergegeben, in den Fehlermeldungen stehen keine absoluten Pfade sondern die relativen:

Error: Couldn't open server log file "../../log/access_log" : No such file or directory.


Irgendwas verdrehst Du jetzt.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Awstats per Cronjob aktualisieren

Postby Grantler » 14. July 2008 14:07

Nobbie wrote:
Grantler wrote:Die Angabe direkter Pfade zu den Logdateien ( z.B. /log/access_log)
oder zu den Daten (z.B. /html/AWdata) wird mit. oben angegebenen
Fehlermeldungen quittiert.


Ne, dann hast Du hier was falsch wiedergegeben, in den Fehlermeldungen stehen keine absoluten Pfade sondern die relativen:

Error: Couldn't open server log file "../../log/access_log" : No such file or directory.


Irgendwas verdrehst Du jetzt.


Zur Zeit stehen bei mir die relativen Pfade in der awstats-config. Damit
funktioniert awstats, das update erfolgt aber per Browser. Wenn ich per
cronjob eines der beiden perl-skripts zur aktualisierung starte, bekomme
ich diese error-meldung.

ich würde ja gerne die awstats-config auf absolute Pfade umstellen, aber
das bekomme ich derzeit nicht gebacken. Bei der Angabe von absoluten
Pfaden motzt Awstats bereits, wenn es per Browser aktualisiert wird.


Ist es so besser verständlich ?
Grantler
 
Posts: 5
Joined: 14. July 2008 00:04

Postby Nobbie » 14. July 2008 14:55

>Ist es so besser verständlich ?

Nicht viel, weil Du über Kreuz entweder die Fehlermeldung verschweigst (resp. die falsche hier wiedergibst) oder die falsche Konfiguration angibst.

Gib doch mal für ALLE Konfigurationen und ALLE Aufrufe die jeweilige Fehlermeldung an. Mit "motzt Awstats bereits" fange ich überhaupt nichts an.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Postby Wiedmann » 14. July 2008 15:11

Die Angabe direkter Pfade zu den Logdateien ( z.B. /log/access_log)
oder zu den Daten (z.B. /html/AWdata) wird mit. oben angegebenen
Fehlermeldungen quittiert.

"/log/access_log" oder "/html/AWdata" dürfte wohl eher nicht der korrekte direkte (absolute) Pfad sein.

Sieht eher nach dem Pfad ausgehend von deinem FTP-Root aus. (und angeben musst du hier den wirklichen absoluten Pfad im Dateisystem)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Grantler » 15. July 2008 10:37

Nobbie wrote:>Ist es so besser verständlich ?

Nicht viel, weil Du über Kreuz entweder die Fehlermeldung verschweigst (resp. die falsche hier wiedergibst) oder die falsche Konfiguration angibst.

Gib doch mal für ALLE Konfigurationen und ALLE Aufrufe die jeweilige Fehlermeldung an. Mit "motzt Awstats bereits" fange ich überhaupt nichts an.


Ok, nochmal:

In meinem awstats-config habe ich relative Pfade definiert :

LogFile="../../log/access_log"
DirData="../AWdata"

Mit diesen Pfaden funktioniert awstats einwandfrei wenn ich das skript
awstats.pl im Browser starte (http://www.domain.de/cgi-bin/awstats.pl).
Aktualisieren per Browser geht ebenfalls ("jetzt aktualisieren"-Button).

Wenn ich aber die Aktualisierung per cronjob machen möchte, gibt es 2
verschiedene perl-skripts:

1. awstats.pl -config=<mydomain>.de -update
2. awstats_updateall.pl now -awstatsprogram=html/cgi-bin/awstats.pl


egal, welches skript ich per cronjob starte es gibt immer diese Fehlermeldung:

"Error: AWStats database directory defined in config file by 'DirData' parameter (../AWdata) does not exist or is not writable."

AWdata existiert und ist auch writable (chmod 777)

ich kann dieses Problem umgehen im dem ich die Daten in das gleiche
Verzeichnis (/cgi-bin) lege. Dann sieht die config so aus:

LogFile="../../log/access_log"
DirData="."

Dann gibt es folgende Fehlermeldung beim starten der update-skripts
(egal welches):

"Error: Couldn't open server log file "../../log/access_log" : No such file or directory."

Offenbar hat awstats erhebliche probleme mit relativen Pfaden wenn es
*nicht* über den Browser aktualisiert.

Ich würde ja gerne absolute Pfade angeben, aber da habe ich das Problem, wie hier schon richtigerweise vermutet wird, daß ich die
Verzeichnisstruktur erst ab meinem Ftp-root sehe.

Ok, so ?
Grantler
 
Posts: 5
Joined: 14. July 2008 00:04

Postby Grantler » 15. July 2008 10:38

Wiedmann wrote:
Die Angabe direkter Pfade zu den Logdateien ( z.B. /log/access_log)
oder zu den Daten (z.B. /html/AWdata) wird mit. oben angegebenen
Fehlermeldungen quittiert.

"/log/access_log" oder "/html/AWdata" dürfte wohl eher nicht der korrekte direkte (absolute) Pfad sein.

Sieht eher nach dem Pfad ausgehend von deinem FTP-Root aus. (und angeben musst du hier den wirklichen absoluten Pfad im Dateisystem)


Korrekt, aber was kann ich tun ?
Grantler
 
Posts: 5
Joined: 14. July 2008 00:04

Postby Wiedmann » 15. July 2008 11:01

(und angeben musst du hier den wirklichen absoluten Pfad im Dateisystem)

Korrekt, aber was kann ich tun ?

z.B. in das Verzeichnis "/html" (ist doch dein Document_Root?) ein Script reintun, welches nur das Scriptverzeichnis ausgibt (oder SCRIPT_FILENAME). Dann hast du doch einen absoluten Pfad, von dem aus du die gewünschten Pfade für LogFile und DirData schliessen kannst.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Nobbie » 15. July 2008 11:41

Grantler wrote:Ich würde ja gerne absolute Pfade angeben, aber da habe ich das Problem, wie hier schon richtigerweise vermutet wird, daß ich die Verzeichnisstruktur erst ab meinem Ftp-root sehe.


FTP hat ja nun gar nichts mit dem Problem zu tun (nur weil Du unter FTP ein geändertes Root-Verzeichnis hast).

Du brauchst doch nur den Wert von DocumentRoot anzuschauen (beispeilsweise einen phpinfo() ausführen), da steht doch der absolute Pfadname drin, wo Deine Verzeichnisse liegen.

Oder mache einen "echo getcwd()" in einem PHP-Script, der nennt Dir auch den vollen Pfadnamen.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

!

Postby Grantler » 15. July 2008 22:44

Nobbie wrote:Du brauchst doch nur den Wert von DocumentRoot anzuschauen (beispeilsweise einen phpinfo() ausführen), da steht doch der absolute Pfadname drin, wo Deine Verzeichnisse liegen.
.


Der Tip mit phpinfo() war goldrichtig. Nun geht's und mir geht's auch wieder
besser.

Danke ! (auch an wiedmann)
Grantler
 
Posts: 5
Joined: 14. July 2008 00:04


Return to Perl

Who is online

Users browsing this forum: No registered users and 7 guests