Linux: Befehl ausführen, wenn sich Datei / Verzeichnis ändert?

1117
Daniel

Ich bin über inotifywait/ inotifywatchvon inotify-tools informiert, über entr( http://entrproject.org/ ) und dieses Dutzend Shell-Skripten, aber sie sind nicht das, was ich brauche.

Was ich brauche, ist etwas Ähnliches guard( https://github.com/guard/guard) ).

Sie funktionieren so: Sie erstellen eine Datei in einem Verzeichnis, in dem festgelegt wird, was überwacht werden soll und was zu tun ist, wenn sich diese Dateien ändern.

Guard ist in Ordnung, aber es ist 1) Ressourcenverbrauch (und bei großen Projekten langsam), 2) der gesamte Ruby und eine Reihe von Abhängigkeits-Edelsteinen erforderlich ist, 3) ein Plugin zum Ausführen von Shellbefehlen erforderlich ist.

Es gibt auch tup( http://gittup.org/tup/ ) und es ist unglaublich verrückt, abgesehen von einer äußerst dummen Einschränkung: Es kann keine Ausgabe in andere Verzeichnisse als das, wo es Tupfileist. Es ist so, Tupfilein jedem Unterverzeichnis einen zu erstellen, und das funktioniert für mich nicht.

Was ich am Ende möchte: Ich gebe Dateimuster und Verzeichnisse (wenn nein, dann alles anschauen) in einer Datei an, führe einen Befehl aus und es wird überwacht, was mit bestimmten Regeln übereinstimmt. Wenn Dateien geändert / hinzugefügt werden, werden die angegebenen Befehle ausgeführt. Das ist es.

Irgendwelche Vorschläge?

4

1 Antwort auf die Frage

-1
P̲̳x͓L̳

Wachhund ist Python library and shell utilities to monitor filesystem events.

Haben Sie sich Gedanken gemacht, zu erweitern, wie dies zu dem passt, wonach OP sucht? 50-3 vor 10 Jahren 0