Das Tool welches wir brauchen nennt sich inotify.
Ich persönlich verwende Debian, es wird einfach über diesen Befehl installiert:
apt-get inotify-tools
Dieses Paket installiert zwei tools:
- inotifywait
- inotifywatch
Als Beispiel soll eine Datei entfernt werden sobald sie erstellt wird. Man baut sich ein shell script und speichert es zB als ninja.sh
#!/bin/sh
while true
do
inotifywait --format '%w%f' -r -e create /PFAD | while read FILE
do
rm $FILE;
done
done
In dem Beispiel oben muss man noch den /PFAD anpassen den man überwachen will. Die Option -r ist "rekursiv" und überwacht auch unterordner, wer die rekursive Option nicht braucht, kann auf sie verzichten.
inotifywait überwacht in dem Beispiel den Ordner /PFAD und sobald eine Datei erstellt wurde (-e create), wird der Pfad und Datei (%w%f) an die Variable FILE übergeben. Diese Variable wird dann von rm verwendet um die Datei zu löschen.
Das ganze ist in einer Schleife gepackt weil notify sich sonst nach dem Trigger automatisch beendet.
Um ninja.sh zu starten muss man noch es ausführbar machen:
chmod 777 ninja.sh
und gestartet wird es einfach mit:
./ninja.sh
beenden müsst ihr es von hand, einfach nach der PID von ninja.sh über "ps ax" suchen.
Mit inotifywait kann man noch viele andere Dinge machen. Hier sind noch mehr gute Beispiele:
http://wiki.ubuntuusers.de/inotify
Keine Kommentare:
Kommentar veröffentlichen