Ich suche ein kleines Bash-Skript, um beim Start ein Verzeichnis für neu erstellte Dateien zu sehen. Wenn eine neue Datei angezeigt wird, möchte ich, dass durch ihre Anwesenheit ein zweites Skript ausgelöst wird.
Ich sehe, dass dies verwendet wird, um das kürzlich digitalisierte Video der Komprimierung auszulösen, und füge es zu einem Protokoll des aufgenommenen Filmmaterials hinzu.
Momentan sieht mein Code so aus:
%Vor%Gibt es eine einfachere / sauberere / weniger speicherintensive Möglichkeit, dies zu tun?
BEARBEITEN Ich werde das Aufnahme-Verzeichnis pro Aufnahmesitzung ändern. Ich habe den Code entsprechend angepasst
Wie wäre es mit incron ? Es löst Befehle bei Datei- / Verzeichnisänderungen aus.
%Vor%Beispiel:
%Vor% Dabei kann <path>
ein Verzeichnis sein (dh das Verzeichnis und / oder die Dateien direkt in diesem Verzeichnis (keine Dateien in Unterverzeichnissen dieses Verzeichnisses!) werden überwacht) oder eine Datei.
<mask>
kann einer der folgenden sein:
<command>
ist der Befehl, der beim Auftreten des Ereignisses ausgeführt werden soll. Die folgenden Wildarten können innerhalb der Befehlsspezifikation verwendet werden:
Wenn Sie ein Verzeichnis ansehen, enthält $ @ den Verzeichnispfad und $ # die Datei, die das Ereignis ausgelöst hat. Wenn Sie eine Datei ansehen, enthält $ @ den vollständigen Pfad zur Datei und $ # ist leer.
Arbeitsbeispiel:
%Vor%Start-Dämon:
%Vor% Bearbeiten incrontab
Datei
Testen Sie es
%Vor%Ergebnis:
%Vor% Anmerkungen: In Ubuntu
müssen Sie inotify beim Booten aktivieren. Bitte fügen Sie folgende Zeile in Grub menu.lst Datei hinzu:
Verwenden Sie iwatch . Nicht wirklich. Es behandelt alle Details zum Erstellen eines Daemons, läuft beim Start, überwacht und protokolliert, usw. und so weiter. Alles, was Sie tun müssen, ist, die Optionen festzulegen, und Ihr Bash-Skript behandelt die Details, um etwas mit der Datei zu tun.
Das kannst du mit dem magischen Werkzeug inotify
machen:
Diese Methode hat den großen Vorteil, die Abfrage alle N Sekunden zu vermeiden.
Inotify (inode notify) ist ein Linux-Kernel-Subsystem, das erweitert wird Dateisysteme, um Änderungen am Dateisystem zu erkennen und diese zu melden Änderungen an Anwendungen. Es ersetzt eine frühere Einrichtung, dnotify, welche ähnliche Ziele hatten.
Ссылка
Siehe Inotif-Dokument