gypakk
Goto Top

Bei Seitenaufruf ein Script starten

Hallo,

ich hab auf einem kleinen Apache-Server verschiedene Seiten liegen und möchte bei jedem Seitenaufruf ein Script starten, das die jeweils angeforderte URL auswertet und je nach URL verschiedene Aufgaben ausführt.

Wo kann ich dieses Script bei Apache einklinken?

Content-Key: 157306

Url: https://administrator.de/contentid/157306

Printed on: April 19, 2024 at 17:04 o'clock

Member: dog
dog Dec 20, 2010 at 13:24:44 (UTC)
Goto Top
Was willst du machen?

Willst du Logs auswerten?
Willst du Logs in Echtzeit auswerten?
Willst du die Ausgabe manipulieren?
Member: gypakk
gypakk Dec 20, 2010 at 14:56:06 (UTC)
Goto Top
Hallo - danke für die schnelle Reaktion!

Zitat von @dog:
Willst du Logs auswerten?
Nein. Nichts im Sinne von Webalizer.

Willst du Logs in Echtzeit auswerten?
Sehr gute Frage. Du bringst mich auf eine Idee... Ursprünglich dachte ich, ich müsste sofort reagieren, aber das ist nicht wirklich notwendig. Es würde also reichen, wenn ich stundenweise oder Tageweise ein Log erhalte, in dem alle Dateien aufgeführt sind, die per Apache abgerufen wurden.
Allerdings brauch ich keine statistischen Informationen, daher scheue ich den Overhead von Webalizer und Co. etwas.

Willst du die Ausgabe manipulieren?
Nein, mir reicht die Liste. Anhand der Liste werden später Dateien aktualisiert, aber das ist dann eine ganz andere Baustelle.
Member: my0name
my0name Dec 20, 2010 at 15:00:24 (UTC)
Goto Top
Was für Aufgaben? Was für ein Script?
eine (denkbare, einfache möglichkeit)
<?php
$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
switch($url) {
case 0: break;
case 1: break;
}
?>
Die Case Bedingung müsste man noch anpassen :P
Das Script wertet aus, und kann verschiedene Aufgaben bearbeiten - je nach url...

Aber mehr Infos währen zweifelsohne mehr als hilfreich.
Member: my0name
my0name Dec 20, 2010 at 15:02:03 (UTC)
Goto Top
Für Stunden / Tageweise Auswertung könnte man auch:
die apache logs per Cronjob / Task und mail rausschicken...
und die dann duch nen log-file parser jagen...
Member: gypakk
gypakk Dec 20, 2010 at 16:00:09 (UTC)
Goto Top
Zitat von @my0name:
Was für Aufgaben? Was für ein Script?
Letztlich nur der Programmaufruf "file_update" um jede innerhalb eines bestimmten Verzeichnisses abgerufene Datei upzudaten.

die apache logs per Cronjob / Task und mail rausschicken...

Danke, "Apache-Logs" war das Stichwort! face-smile
Mei, bin ich doof, ist ja eigentlich alles da. Das aktive Log und das vorherige scheinen unkomprimiert vorzuliegen, alle älteren mit gzip komprimiert:

root@x:/var/log/apache2$ ls -l a*
-rw-r----- 1 root adm     176 2010-12-20 16:18 access.log
-rw-r----- 1 root adm 1132199 2010-12-20 15:29 access.log.1
-rw-r----- 1 root adm     163 2010-10-18 01:20 access.log.10.gz
-rw-r----- 1 root adm     257 2010-10-11 16:45 access.log.11.gz

Den Rest erledigen grep und Co:
cat access.log.1 access.log |grep "/files/download/" |./update_file

Muss nur noch die doppelten URLs rausfiltern und überflüssige Textteile des Logs entfernen, aber das müsste mit sed und cut klappen.
Sorgen macht mir nur noch, dass das nicht komprimierte Log bei hohem Traffic nicht mehr den kompletten letzten Tag umfassen könnte. Vielleicht dann doch stündliche Auswertung per cron-Job...