inotifywait - auf Dateiänderungen reagieren
inotifywait wartet auf Änderungen im Dateisystem und reagiert sofort darauf.
Praktisch um automatisch etwas auszuführen wenn eine Datei geändert, erstellt oder gelöscht wird.
Installation
sudo apt-get install inotify-tools
Einfache Verwendung
Auf eine einzelne Datei warten.
inotifywait -e modify /etc/nginx/nginx.conf echo "nginx.conf wurde geändert"
Verzeichnis überwachen
inotifywait -m -e create,modify,delete /var/www/uploads/
-m läuft dauerhaft statt nach dem ersten Ereignis zu beenden.
Als Endlosschleife für Automatisierung
#!/bin/bash
inotifywait -m -e close_write --format '%f' /var/www/deploy/ | while read filename; do
echo "Neue Datei: $filename"
/usr/local/bin/deploy.sh
done
close_write feuert wenn eine Datei fertig geschrieben wurde, nicht bei jedem Schreibzugriff.--format '%f' gibt nur den Dateinamen zurück.
Rekursiv überwachen
inotifywait -mr -e modify,create,delete /var/www/
-r überwacht Unterverzeichnisse mit.
Vorsicht: bei vielen Dateien und Verzeichnissen braucht das viele inotify-Watches.
Limit erhöhen wenn nötig
cat /proc/sys/fs/inotify/max_user_watches echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches
Dauerhaft in /etc/sysctl.conf.
fs.inotify.max_user_watches=524288