Inhaltsverzeichnis

Verzeichnisüberwachung: watcher

Nachfolgend soll die Installation und Arbeitsweise des Überwachungsprogrammes watcher beschrieben werden. Es damit möglich ein Verzeichnis (inklusive aller Unterverzeichnisse) zu überwachen und beim Eintreten einer Änderung bestimmte Aktionen auszulösen. Ein verwandtes Programm ist incron (welches aber nur auf Veränderung von Dateien in einem Verzeichnis reagiert).


Abhängigkeiten

Das Programm watcher ist ein Python-Skript und benötigt demnach bestimmte Python-Pakete als Abhängigkeit:

~# apt-get install python python-pyinotify


Installation

Es werden zwei Dateien benötigt, der Dienst (Python-Skript) watcher.py (von https://github.com/splitbrain/Watcher/blob/master/watcher.py) und die Konfigurationsdatei watcher.ini (von https://github.com/splitbrain/Watcher/blob/master/watcher.ini). Das Skript wird ins Verzeichnis /etc/init.d/ kopiert, damit es bei einem Rechnerstart automatisch mit startet. Die Konfigurationsdatei wird nach /etc/ kopiert.


Der Dienst muss für einen automatischen Start in die Runlevel eingetragen werden:

~# chmod +x /etc/init.d/watcher.py
~# update-rc.d watcher.py defaults
~# update-rc.d watcher.py enable 2 3 4 5


~# /etc/init.d/watcher.py start
~# /etc/init.d/watcher.py stop


~# /etc/init.d/watcher.py debug


Syntax

Die Konfigurationsdatei /etc/watcher.ini gliedert sich in zwei Bereiche. Der allgemeine Teil ([DEFAULT]) gilt für alle Überwachungen. Jede Überwachung besitzt einen eigenen Abschnitt.


Allgemeiner Teil

Der allgmeine Teil besitzt zwei Parameter:


Überwachung

Jede Überwachung (gekeinnzeichniet mit [<Name der Überwachung>]) besteht aus mehreren Parametern:


Logrotation

Die Logdatei, die geschrieben wird, sollte regelmäßig durch logrotate bereinigt werden.


/var/log/watcher.log {
        weekly
        rotate 12
        compress
        delaycompress
        missingok
        notifempty
        create 644 root root
}


Die Logrotation kann überprüft werden:

~# logrotate -f /etc/logrotate.d/watcher


Überprüfung

Wurde der Dienst gestartet, kann dies wie folgt überprüft werden:

~# ps -ef | grep [w]atcher.py
root      9793     1  0 10:57 ?        00:00:00 python /etc/init.d/watcher.py start



Steffen Bornemann 08.11.2018