Shell-Script-Frage

Dieses Thema im Forum "Server Administration" wurde erstellt von SimplyFred, 21. Feb. 2008.

  1. SimplyFred

    SimplyFred New Member

    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 !
     
  2. Till

    Till Administrator

    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. DennisO

    DennisO New Member

    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.
     

Diese Seite empfehlen