Ausführung eines Bash-Skripts bei der Dateierstellung

8

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

    
Simianspaceman 04.02.2013, 17:44
quelle

3 Antworten

11

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:

%Vor%

<command> ist der Befehl, der beim Auftreten des Ereignisses ausgeführt werden soll. Die folgenden Wildarten können innerhalb der Befehlsspezifikation verwendet werden:

%Vor%

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

%Vor%

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:

%Vor%     
Satish 04.02.2013, 17:56
quelle
1

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.

    
Spencer Rathbun 04.02.2013 17:52
quelle
0

Das kannst du mit dem magischen Werkzeug inotify machen:

%Vor%

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

    
Gilles Quenot 04.02.2013 17:48
quelle

Tags und Links