verzeichniss suche funktioniert nicht

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von deepware, 06.03.2014.

  1. #1 deepware, 06.03.2014
    deepware

    deepware Grünschnabel

    Dabei seit:
    06.03.2014
    Beiträge:
    1
    Zustimmungen:
    0
    hi, ich habe angefangen mich ein wenig mit bash scripten zu beschäftigen und hab mir auf meinem win system extra cygwin installiert.
    zum problem, mein freund hat einen rootserver welcher mit debian läuft, auf diesem sind verschiedene gameserver installiert.
    um die dateien welche in einigen verzeichnissen per ftp hochgeladen werden zu syncronisieren musste ein script her.
    es handelt sich um mehrere counterstrike source server auf diesem root welche z.b. die maps verzeichnisse auf ein gemeinsames
    verzeichniss abgleicht welches als sogenanntes fastdownload verzeichniss fungiert.
    zum packen und syncronisieren nutze ich die funktion "packer" welche auch problemlos funktioniert,
    danach sollen einfach nur die verzeichnisse auf veränderungen geprüft werden und wenn sie vorhanden sind eine 2. prüfung erfolgen,
    ob die dateien noch im upload sind, wenn der upload fertig ist soll wieder syncronisiert werden.

    Code:
    #!/bin/bash
    
    #############################################################
    # FastdownloadScript zum automatischen Dateiabgleich und    #
    # Syncronisation auf Rootservern.                           #
    # Zur verwendung auf Counter Strike Source servern mit      #
    # Tecbase Webinterface.                                     #
    #                                                           #
    # Es läuft selbstständig im hintergrund und gleicht die     #
    # Verzeichnisse für den Fastdl ab packt die Dateien und     #
    # spiegelt sie in das Verzeichniss für den Fastdl link      #
    # auf den selben Root.                                      #
    # Es werden dabei mehrere Game Server in ein gemeinsames    #
    # Fastdl Verzeichniss gespiegelt.                           #
    # Gelöschte Maps Sounds oder dergleichen werden entfernt.   #
    #                                                           #
    # Bitte Pfade an eigenen Root anpassen !                    #
    #                                                           #
    # z.b.:                                                     #
    #       dir1="/weis/der/geier/wo/deine/server/sind"         #
    #       fdldir="/dein/fastdl/verzeichniss"                  #
    #                                                           #
    # Script zur freien verwendung, darf auch modifiziert,      #
    # oder verbessert werden.                                   #
    #                                                           #
    # Script Release 0.0.1 by DeepWare                          #
    #############################################################
    "
    ################################
    # Release Version 0.0.1        #
    ################################
    # Testpfade und variablen !!!! #
    ################################
    
    fdldir="/var/www/fastdl/cstrike/maps/test"
    
    dir1="/home/*/server/css_*/css/cstrike"
    #fdldir="/home/test"
    include="--include=*/ --include=*.bz2 --include=*.jpg --include=*.png"
    exclude="--exclude=*.txt --exclude=*.ztmp --exclude=*.wav --exclude=*.mp3 --exclude=*.nav --exclude=*.bsp --exclude=*.res"
    datei_finder="find $dir1 -type f -amin -5 -ls"
    optionen=(
        --include='*/'
        --include='*.bz2'
        --include='*.jpg'
        --include='*.png'
        --exclude='*.txt'
        --exclude='*.ztmp'
        --exclude='*.wav'
        --exclude='*.mp3'
        --exclude='*.nav'
        --exclude='*.bsp'
        --exclude='*.res'
    )
    
    
    clear
    
    function suche() {
    
    # sollte ok sein
    
        a="ls -laR ${dir1}/maps"
        a1="ls -laR ${dir1}/sound"
        a2="ls -laR ${dir1}/models"
        a3="ls -laR ${dir1}/materials"
    
    while test 1
    do
    
        clear
        echo ""
        echo " !!! Dateien werden geprüft !!! "
        echo ""
        sleep 1
    
        b="ls -laR ${dir1}/maps"
        b1="ls -laR ${dir1}/sound"
        b2="ls -laR ${dir1}/models"
        b3="ls -laR ${dir1}/materials"
    
    if [ $a != $b -o $a1 != $b1 -0 $a2 != $b2 -o $a3 != $b3 ]
    then
    
        dateitest
    
    else
    
        a=$b
        a1=$b1
        a2=$b2
        a3=$b3
    
        clear
        echo ""
        echo " !!! Dateien sind aktuell !!! "
        echo ""
        sleep 1
    
    fi
    
    done
    }
    
    function dateitest() {
    
    # testen
    
        aa="ls -laR ${dir1}/maps"
    
        clear
        echo ""
        echo " !!!     Prüfe erneut     !!! "
        echo ""
        sleep 1
    
        bb="ls -laR ${dir1}/maps"
    
    if [ $aa = $bb ]
    then
    
        echo ""
        echo " !!! Datei wurde gelöscht !!! "
        echo " !!!    Starte Abgleich   !!! "
        echo ""
        sleep 3
        clear
    
        packer
    
    else
    
        clear
        echo ""
        echo " !!! Datei im Upload !!! "
        echo ""
        sleep 1
    
        c="find ${dir1}/maps -type f -amin -1"
    
    if [ -e $c ]
    then
    
        clear
        echo ""
        echo " !!! $c wird gerade hochgeladen !!! "
        echo ""
        sleep 2
    
        d="$(ls -l $c | awk '{print $5}')"
    
    if [ $d -eq $d2 ]
    then
    
        a=""
        b=""
        aa=""
        bb=""
        c=""
        d=""
        d2=""
    
        clear
        echo ""
        echo " !!! fertig hochgeladen !!! "
        echo ""
        sleep 2
    
        packer
    
    fi
    fi
    fi
    
        sleep 2
    }
    
    function packer() {
    
    # funktion ist ok
    
    while true
    do
    
        clear
        echo ""
        echo " !!! Dateien werden gepackt !!!"
        echo ""
        sleep 1
    
        find $dir1 \( -name "*.bsp" -o -name "*.nav" -o -name "*.res" -o -name "*.mp3" -o -name "*.wav" \) -exec bzip2 -9k '{}' \;
    
        echo ""
        echo " !!! Dateien sind gepackt !!! "
        echo ""
        sleep 1
    
        clear
        echo ""
        echo " !!! Dateien werden Syncronisiert !!! "
        echo ""
        sleep 1
    
        rsync -auv --delete ${dir1}/materials ${fdldir}
        rsync -auv --delete ${dir1}/models ${fdldir}
        rsync -auv "${optionen[@]}" --delete ${dir1}/maps ${fdldir}
        rsync -auv "${optionen[@]}" --delete ${dir1}/sound ${fdldir}
    
        echo ""
        echo " !!! Dateien Syncronisiert !!! "
        echo ""
        sleep 1
        clear
    
        suche
    
    done
    }
    
    packer

    nun das problem die funktion "suche" hängt in einer endlosschleife fest weil sie keine veränderungen registriert.
    ich weis das der script evtl. komisch aussieht, ist auch mein erster bashscript.
    achso die überprüfung auf veränderungen soll nicht mit inotify oder wie das heißt erfolgen.

    mfg henry
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

verzeichniss suche funktioniert nicht

Die Seite wird geladen...

verzeichniss suche funktioniert nicht - Ähnliche Themen

  1. Verzeichnis mit Unterverzeichnissen in Schleife durchsuchen

    Verzeichnis mit Unterverzeichnissen in Schleife durchsuchen: Hallo Leute, ich habe folgendes Problem: ich muss in einem Verzeichnis das wiederum zahlreiche Unterverzeichnisse besitzt bestimmte Dateien...
  2. Mehrere Verzeichnisse nach best. Dateien/Verz. durchsuchen

    Mehrere Verzeichnisse nach best. Dateien/Verz. durchsuchen: Hi, ich bin neu hier und auch shell-programmierung ist für mich recht neu. Aber ich verzweifle langsam und daher hoffe ich ihr könnt mir weiter...
  3. suche links für server und verzeichnisse um über yat2 zu installieren

    suche links für server und verzeichnisse um über yat2 zu installieren: hi, wie der tittel schon sagt suche ich links für yast bitte um hilfe, danke:))
  4. In mehreren Unterverzeichnissen nach einem String suchen

    In mehreren Unterverzeichnissen nach einem String suchen: hallo, möchte am besten mit nur einem Befehl nach einem bestimmten String in mehreren Verzeichnissen suchen. 1) grep "String" *.html sucht ja...
  5. Suchen von Verzeichnissen und Inhalt kopieren

    Suchen von Verzeichnissen und Inhalt kopieren: Hallo zusammen, sehr wahrscheinlich wird es für die meisten hier im Forum eine sehr einfache Aufgabe sein. Da ich nicht oft mit Unix zu tun...