Ordner auf neue Dateien überwachen

Datum: 2002-08-11
Quelle: suse-linux

Worum ging es?

Ein Benutzerverzeichnis (inklusive Unterverzeichnisse) soll überwacht werden und dem Benutzer beim Eintreffen neuer Dateien per Win-Popup bzw. Mail eine Nachricht übermittelt werden.

Code
time_file=/home/exchange/.last_run
if test -f $time_file; then
  find_opt="-newer $time_file"
else
  find_opt=
fi
new_files="`find /home/exchange/username -type f $find_opt -print`"
if test -n "$new_files"; then
  echo "neue Datei / new file" | smbclient -U user -M /dev/null || \
    echo "$new_files" | mail -s "neue Datei / new file" user@host
fi
touch $time_file
Beschreibung

Die Nachrichten gehen hier per smbclient raus, sind also für Win*-PCs gedacht. Wenn das schiefgeht (z. B. weil der PC nicht an ist), wird die Nachricht per E-Mail abgeschickt.
Das zu überwachende Verzeichnis sowie die Mailadresse müssen noch an die konkrete Umgebung angepasst werden. Der Name der Datei, deren Modifikationsdatum als Vergleich benutzt wird ($time_file), kann eigentlich beliebig gewählt werden. Wichtig für eine korrekte Funktion ist, dass nicht andere Prozesse die Modifikationszeit ändern.