Eventhandler

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

~/etc/event-handler

Diese Datei gilt nur für das Paket etc Verzeichnis, Sie ermöglicht es bei bestimmten Ereignissen, wie zum Beispiel nach dem nächtlichen Verteilen der Apache-Logfiles oder der Aktivierung des Pakets nach einem Umzug, automatisch eigene Programme, z. B. das Logfile-Auswertungsprogramm Analog oder einen eigenen Daemon starten zu lassen.

Der Aufruf der einzelnen Kommandos erfolgt mit einer an die Last angepassten Wartezeit, damit das System nicht mit zu vielen Jobs gleichzeitig belastet wird.

Die auszuführenden Kommandos werden in einem crontab-ähnlichen Format eingetragen. Beispiel:

# Nach dem Verteilen der Apache-Logfiles wird analog gestartet:
@weblogsplit  /usr/bin/analog +g~/doms/example.net/etc/analog.cfg

# Nach dem Aktivieren des Pakets bzw. einem Neustart des Servers 
# wird eine Informations-E-Mail geschickt:
@activate     echo 'xyz00 wurde aktiviert!' | mail email@example.net

Zuerst steht also der durch ein @ eingeleitete Name des Ereignisses (s.u.), dann kommt - durch Leerzeichen und/oder Tabulatoren abgetrennt - das auszuführende Kommando. Kommentarzeilen werden am Zeilenanfang durch ein oder mehrere # gekennzeichnet.

Die Kommandos werden von einer bash (1) mit den Rechten des jeweiligen Users ausgeführt. Wenn bei einem Ereignis Parameter übergeben werden (s.u.), dann geschieht dies in Form von Enviroment-Variablen, die mit HS_ beginnen, d.h. man könnte z.B. per

@domstatus echo "$HS_DOM hat nun den Status $HS_STATUS." >>logfile

die Statusänderungen aller seiner Domains in der Datei logfile in seinem Homeverzeichnis mitloggen.

Achtung: Dieses Event dient nur als Beispiel und ist (bislang) nicht implementiert.


Die folgenden Ereignisse gibt es derzeit:

Name Parameter Beschreibung
@weblogsplit Wird nach dem nächtlichen Split der Web-Logfiles ausgeführt
@ftplogsplit Wird nach dem nächtlichen Split der FTP-Logfiles ausgeführt
@maillogsplit Wird nach dem nächtlichen Split der Mail-Logfiles ausgeführt
@pacquotawarning Wird täglich ausgeführt, wenn die Paketquota überschritten wurde
HS_QUOTA_BLOCK_USED genutzter Speicherplatz
HS_QUOTA_BLOCK_SOFT gebuchter Speicherplatz
HS_QUOTA_BLOCK_HARD verfügbarer Speicherplatz für kurzzeitige Überziehung
HS_QUOTA_BLOCK_PERC Nutzung in Prozent
HS_QUOTA_BLOCK_GRACE-LEFT verbleibende Frist für kurzzeitige Überziehung
@pactrafficwarning Wird ausgeführt, wenn der Traffic am Vortag auf den Monat hochgerechnet zu einer Überschreitung des

Inklusivtraffics führen würde

HS_TRAFFIC_INCLUSIVE_MONTHLY gebuchter Traffic pro Monat
HS_TRAFFIC_INCLUSIVE_DAILY gebuchter Traffic pro Tag (rechnerisch zur Orientierung)
HS_TRAFFIC_YESTERDAY_TOTAL gesamter Traffic am Vortag
HS_TRAFFIC_YESTERDAY_HTTP HTTP-Traffic am Vortag
HS_TRAFFIC_YESTERDAY_FTP FTP-Traffic am Vortag
HS_TRAFFIC_YESTERDAY_MAIL Mail-Traffic am Vortag
HS_TRAFFIC_THISMONTH_DAYS Tage im Monat bisher
HS_TRAFFIC_THISMONTH_TOTAL Traffic im Monat bisher
HS_TRAFFIC_THISMONTH_ESTIMATED hochgerechneter Traffic im Monat
@paclock Sperrung des Pakets
HS_REASON ggf. Grund der Sperrung
@pacunlock Entsperrung des Pakets
HS_REASON ggf. Grund der Entsperrung