Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit PHP aus Apache_log Traffic errechnen
Ich will mit Hilfe von PHP meine Log-Dateien auslesen und dann den Traffic zusammen rechnen.
127.0.0.1 - - [09/Nov/2006:15:54:54 +0100] "GET /style.css HTTP/1.1" 200 4535 "http://www.x.de/FFD_index.html" "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)"
127.0.0.1 - - [09/Nov/2006:15:54:54 +0100] "GET /back.gif HTTP/1.1" 200 922 "http://www.x.de/FFD_index.html" "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)"
Um die dick markierten Zahlen geht es. Da ich noch nicht so gut in PHP bin, bekomme ich kein performantes Script hin.
Könnt ihr mir bitte helfen?
undefined
04-04-2007, 19:12
Also das ist keine gute Idee, Zugriffrechte ;)
Du solltest eine Extra Log in deinem Gewünschten Format erstellen.
Und an einem Platz Speichern wo sie zum Account gehört. Das Log Verzeichnis gehört root ;)
Beispiel:
LogFormat "<log><date>%{%D}t</date><time>%{%T}t</time><status>%>s</status><agent>%{User-agent}i</agent></log>" accessLog
CustomLog /srv/www/htdocs/owner/tmp/Access.xml accessLog
Siehe Apache Manual
Also das ist keine gute Idee, Zugriffrechte ;)
Du solltest eine Extra Log in deinem Gewünschten Format erstellen.
Und an einem Platz Speichern wo sie zum Account gehört. Das Log Verzeichnis gehört root ;)
Beispiel:
LogFormat "<log><date>%{%D}t</date><time>%{%T}t</time><status>%>s</status><agent>%{User-agent}i</agent></log>" accessLog
CustomLog /srv/www/htdocs/owner/tmp/Access.xml accessLog
Siehe Apache Manual
An die Log-Datei komm ich schon ran, aber ich habe Probleme mit dem RegEx. Ich bekomme keinen Richtigen hin der mir die Daten richtig auswertet. Zum Logformat: Ich werde bei dem Standard bleiben.
schon mal danke für weitere hilfe.
undefined
04-04-2007, 19:17
Es geht nicht darum das du daran kommst es geht darum das dieses Verzeichnis eine restricted Area ist nur dem Administrator zur Verfügung stehen sollte.
Mit Custom Log kannst du vor allem den Regexp (Den du im übrigen gar nicht brauchst siehe sprintf() bzw, sscanf() (http://www.php.net/manual/de/function.sscanf.php) ;) ) sparen. ;)
Also das ist keine gute Idee, Zugriffrechte ;)
Du solltest eine Extra Log in deinem Gewünschten Format erstellen.
Und an einem Platz Speichern wo sie zum Account gehört. Das Log Verzeichnis gehört root ;)
Die Provider, z.B. Strato, liefern die Logs aber nun mal in der oblgen Form aus.
Was man machen kann:
Das Leerzeichen scheint ein Trenner zu sein, also splittet man damit, erhält seine Zahl an der bestimmten Stelle und summiert den Quatsch auf. - ganz ohne RegEx
Feddich!
so long,
BlueJay
Hallo Luxores,
wie Undefined schon richtig gesagt hat, ist es das Einfachste sscanf() zu verwenden. Die Position der Informationen in der jeweiligen Log-Zeile (z. b. an welcher Stelle genau das Datum kommt) wird durch das Log-Format des Apaches bestimmt. Infos dazu findest du hier:
http://httpd.apache.org/docs/2.0/mod/mod_log_config.html
In den Kommentaren zu der sscanf()-Funktion findest du sogar ein Codebeispiel zum "Common" Log-Format (ungetestet):
$log = array();
$n = sscanf(trim($line), '%s %s %s [%[^]]] "%s %s %[^"]" %d %s "%[^"]" "%[^"]"',
$log['ip'],
$log['client'],
$log['user'],
$log['time'],
$log['method'],
$log['uri'],
$log['prot'],
$log['code'],
$log['bytes'],
$log['ref'],
$log['agent']
);
Grüße,
nEox
Hallo Luxores,
wie Undefined schon richtig gesagt hat, ist es das Einfachste sscanf() zu verwenden. Die Position der Informationen in der jeweiligen Log-Zeile (z. b. an welcher Stelle genau das Datum kommt) wird durch das Log-Format des Apaches bestimmt. Infos dazu findest du hier:
http://httpd.apache.org/docs/2.0/mod/mod_log_config.html
In den Kommentaren zu der sscanf()-Funktion findest du sogar ein Codebeispiel zum "Common" Log-Format (ungetestet):
$log = array();
$n = sscanf(trim($line), '%s %s %s [%[^]]] "%s %s %[^"]" %d %s "%[^"]" "%[^"]"',
$log['ip'],
$log['client'],
$log['user'],
$log['time'],
$log['method'],
$log['uri'],
$log['prot'],
$log['code'],
$log['bytes'],
$log['ref'],
$log['agent']
);
Grüße,
nEox
ah danke, jetzt kann ich mir daraus was bauen. :)
THX
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.