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).