Categories
Linux Tools

dnotify: Verzeichnisse auf Änderungen überwachen

Kürzlich kam die Frage auf, ob man nicht nach einem Upload per scp automatisch ein Script auf dem entfernten Rechner anstoßen kann. Prinzipiell gibt es mehrere Ansätze. Bevor es jedoch zu Scripting-Orgien kam, ist Gerd glücklicherweise das Tool dnotify eingefallen (sollte in vielen Distributionen vorhanden sein).

dnotify überwacht Verzeichnisse auf Änderungen. Folgender Befehl überwacht das Verzeichnis /var/www/htdocs und führt bei einer Änderung (-M “Modify”) das angegebene Script aus. Sehr nützlich um z.B. Scripte nach dem hochladen auf einen Cluster zu verteilen.

dnotify -M /var/www/htdocs -e /opt/deploy_scripts.sh > /dev/null &

Anmerkung

Theoretisch kennt dnotify auch einen Parameter -r für Rekursiv. Je nach Verzeichnisgrösse habe ich aber Bedenken, dass evt. die I/O Last zu groß wird. Jedenfalls löse ich es so, dass ich bei einer Änderung in Unterverzeichnissen im Hauptverzeichnis eine Datei namens “.update” hochschiebe um das Script zu triggern. (Vermutlich sind meine Bedenken aber unbegründet, da dnotify irgendwelche Kernel-Events o.Ä. nutzt um Änderungen zu überwachen.)

Noch eine Anmerkung

dnotify kennt auch einen Parameter -b um das Programm in den Hintergrund zu schicken. Bei meinen Versuchen wurde das Programm zwar in den Hintergrund geschickt aber reagierte dann nicht auf Änderungen bzw. hat das Script nicht ausgeführt. Keine Ahnung warum. Die Befehlszeile oben schickt das Programm jedenfalls funktionsfähig in den Hintergrund.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.