Rsync Script

Perry

New Member
Moin in die weite Runde,

ich bräuchte einmal Hilfe bei einem selbst erstelltem Rsync Script auf meinem Debian wheezy NAS (mit Openmediavault):

Zuerst einmal das Script

Code:
date=`date +%Y-%m-%d--%H:%M`
    ​
vorher=`du -d0 /media/be4d5bc1-a7e6-4b4b-8497-4e6d93434d6f/TMP/`
    ​
sleep 5
    ​
nacher=`du -d0 /media/be4d5bc1-a7e6-4b4b-8497-4e6d93434d6f/TMP/`
    ​
if [ "$vorher" == "$nacher" ]
    then
    	echo $date - Starte Sync >> /home/log.txt
    	rsync -avzbe "ssh -p 222" --remove-source-files USER@URL.de:/ORDNER/tmp/ /media/be4d5bc1-a7e6-4b4b-8497-4e6d93434d6f/TMP
    else
    	echo Bitte auf abschluss des aktuellen Downloads warten!
    	echo $date - Groessenunterschied festgestellt >> /home/log.txt
    	echo $vorher - $nacher >> /home/log.txt
    fi

Das Script soll einen Ordner (TMP) von meinem Server in richtung meines NAS abgleichen. Das ganze wird alle 5 minuten per Cronjob aufgerufen.

Da die Dateien recht groß und niemals in den 5 minuten heruntergeladen werden können habe ich die Abfrage nach der Größe eingebaut. Sprich Zuerst checkt er wie groß der entsprechende Ordner auf der NAS Festplatte ist, wartet 5 Sekunden und prüft dann die Größe noch einmal. Ist das Ergebnis identisch kann davon ausgegangen werden dass grade kein Download läuft und er startet den rsync Befehl.

Jetzt habe ich aber das kuriose Problem, dass wenn ich das Script händisch in der Shell starte es ohne Probleme funktioniert.

Wenn aber der Cronjob das Script ausführt denkt er immer das die beiden Variablen unterschiedlich sind und lädt natürlich nix runter... *kopfkratz*

Hier mal der Auszug aus der "log" Datei:


Code:
2017-03-19--12:45 - Groessenunterschied festgestellt
71863500 /media/be4d5bc1-a7e6-4b4b-8497-4e6d93434d6f/TMP/
71863500 /media/be4d5bc1-a7e6-4b4b-8497-4e6d93434d6f/TMP/


Also ich sehe da keinen Unterschied :confused:... Jemand vielleicht eine Ahnung was da der Unterschied zwischen dem Aufruf in der Shell und als Cronjob sein könnte?


Vielen Dank
 

Perry

New Member
:rolleyes: vielen Dank.

Ein einfaches #!/bin/bash am Anfang hat die Lösung gebracht.

Hast du eventuell eine gute Quelle wo ich mich mal einlesen kann, warum es ohne nicht funktioniert hat?

und noch einmal danke für den Tipp :)
 
Top