Shell-Script-Frage

#1
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 !
 

Till

Administrator
#2
Wenn Dir ein Zyklus von 1 Minute oder ein Vielfaches davon reicht, dann würde Ich das Script einfach über Cron aufrufen lassen.

Wenn es ein kürzerer Teitraum sein soll, dann kannst Du ein Shell script mit einer Endlosschliefe nehmen, in die Du ein Sleep mit z.B. 20 Sekunden einbaust, um somit ein 20 Sek. Intervall zu erhalten.
 
#3
Am besten kannst du das ganze wie du schon sagtest mit Bash realisieren in Kombination mit "cron". Wie du die Verwendung von cron nimmst, ist eigentl. relativ in dem Fall.

Code:
if [ ! -f "/dev/null" ]; then
^ - Ist die Bedindung dafür zu prüfen ob ein Verzeichnis existiert (das ! signalisiert das Gegenteil davon)

du kannst dies als function schreiben oder direkt.

Ein Beispiel:
Code:
#! /bin/bash

PATH_DIR=/dev/null

if [ ! -f $PATH_DIR ]; then
  echo "Das Verzeichnis ist nicht vorhanden"
  exit
else
  echo "Dein Verzeichnis ist vorhanden"
fi
Eben schnell geschrieben, ich hoffe es reicht dir und du kannst damit arbeiten.
 

Werbung