Schrift
[thread]11342[/thread]

Shell-Script-Frage



<< >> 2 Einträge, 1 Seite
Gast Gast
 2008-02-21 20:00
#106195 #106195
Hallo,

ich habe das Problem, dass immer wieder wenn sich bei mir an der Datenbank etwas ändert, ein bestimmtes Shell-Script (autoload.sh) ausgeführt werden muss.

Wie schreibe ich ein Script, was in einem definierten Verzeichnis /etc/test/ nach einer Datei "result.txt" schaut und sobald diese Datei existiert, wird das Script "autoload.sh" ausgeführt. Nach der Ausführung von "autoload.sh" wird die erwartete Datei "result.txt" weggeschoben, sodass es hier keine Never-Ending-Schleife gibt.

Das Problem ist, wie mache ich ein Script, das zyklisch in dem Verzeichnis /etc/test nach "result.txt" schaut ?

Wäre für Hilfe sehr dankbar !
nepos
 2008-02-21 21:03
#106198 #106198
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nun ja, du könntest das mit einer while-Endlosschleife erledigen und zum Warten halt ein sleep einbauen.
Noch eleganter geht es, wenn du dir inotify installierst (bei Debian heisst das Paket inotify-tools).
Damit kannst du dann sowas machen:
Code: (dl )
1
2
3
4
       #!/bin/sh
while inotifywait -e create /etc/test/result.txt; do
autoload.sh # Eventuell hier noch den Pfad dazupacken
done


Damit passiert wirklich nur etwas, wenn die Datei /etc/test/result.txt angelegt wird. Du musst da also nicht mit sleep warten und immer umsonst prüfen, ob die Datei da ist.
Falls der Inhalt wichtig ist, könntest du eventuell doch noch einen kleinen sleep brauchen, damit das andere Programm die Datei komplett geschrieben hat.
<< >> 2 Einträge, 1 Seite



View all threads created 2008-02-21 20:00.