BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Verzeichnis überwachen und auf Veränderungen reagieren

Mit Hilfe von wait_on kann zum Beispiel mittels eines Shell-Skripts ein Verzeichnis oder eine Datei überwacht und falls neue Dateien in das Verzeichnis geschrieben werden oder die überwachte Datei geändert wird, darauf reagiert werden. wait_on findet man im FreeBSD Portbaum unter sysutils/wait_on:

# cd /usr/ports/sysutils/wait_on && make install clean

Als Argument kann wait_on zum Beispiel ein Verzeichnis übergeben werden. Danach wartet wait_on, bis in diesem Verzeichnis zum Beispiel eine neue Datei gespeichert oder gelöscht wird. Sobald eine solche Änderung erkannt wird, beendet sich wait_on. Anhand des Rückgabewertes von wait_on kann bestimmt werden, was für eine Änderung im Verzeichnis vorgenommen wurde. Verwendet man die -h Option werden zusätzliche Informationen zur Änderung ausgegeben:

# sleep 10 && touch /tmp/test &
# wait_on -h /tmp/
/tmp/: written
# echo $?
2

Die Bedeutungen aller Rückgabewerte sind in der Manpage von wait_on beschrieben.

Nun kann zum Beispiel ein Shell-Skript erstellt werden, welches auf neue Dateien in einem Verzeichnis reagiert.

#!/bin/sh
SOURCE=/var/upload


while :; do
wait_on $SOURCE
....
<Verarbeitet neue Dateien>
...
done

Mehr Informationen zu wait_on findet man in der Manpage wait_on(1).

 Permalink