LigHTTPd: access.log "überwachen" - wie?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

LigHTTPd: access.log "überwachen" - wie?

Beitrag von CrimsonKing » 10.03.2012 20:16:14

Hallo, ich mal wieder.

Ich habe auf einem meiner Debiansysteme einen LigHTTPd laufen und würde gern die access.log "überwachen": Wenn eine bestimmte Datei heruntergeladen wird, würde ich gern eine Mail bekommen. Ich vermute, ein Cronjob sollte dafür genügen. Aber wie kann ich das erreichen? Bloßes grep funktioniert wahrscheinlich nicht, da es mehr als einmal aufgerufen würde,

Hilfe? :)

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: LigHTTPd: access.log "überwachen" - wie?

Beitrag von syssi » 10.03.2012 20:26:33

So wuerdest du das Log dauerhaft ueberwachen und pro Eintrag eine Mail lossschicken. Ist nicht getestet. Sollte aber gehen. ;-)

Code: Alles auswählen

tail -f access.log | grep dateiname | xargs mail -s "{}" email@addr

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: LigHTTPd: access.log "überwachen" - wie?

Beitrag von CrimsonKing » 10.03.2012 20:27:59

Ja, so weit dachte ich es mir, aber: greift das "grep" da nur jeweils für neue Einträge oder für alle?
(Und wird das dann eigentlich im Hintergrund ausgeführt, so dass ich mich aus SSH ausloggen kann und es trotzdem weiter läuft?)

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: LigHTTPd: access.log "überwachen" - wie?

Beitrag von syssi » 10.03.2012 20:31:54

CrimsonKing hat geschrieben:Ja, so weit dachte ich es mir, aber: greift das "grep" da nur jeweils für neue Einträge oder für alle?
(Und wird das dann eigentlich im Hintergrund ausgeführt, so dass ich mich aus SSH ausloggen kann und es trotzdem weiter läuft?)
"tail -f" wird nur die letzten x Zeilen lesen und danach alle neuen zu Tage bringen. Solltest du dich fuer alte Eintraege nicht interessieren, dann wuerde

Code: Alles auswählen

tail -n0 -f access.log
eine Loesung. Schreib die Zeilen in ein Skript und starte es mit vorangestelltem "nohup":

Code: Alles auswählen

nohup ./meinzweizeiler.sh
Dann laeuft das tail bis du es killst oder der Server rebootet.

CrimsonKing
Beiträge: 106
Registriert: 30.08.2009 08:08:53
Lizenz eigener Beiträge: Artistic Lizenz

Re: LigHTTPd: access.log "überwachen" - wie?

Beitrag von CrimsonKing » 10.03.2012 20:35:04

Ahh, besten Dank! An nohup dachte ich gerade gar nicht. :)

Antworten