Seltsamer Fehler in simplem rsync-Script
Posted: 2011-03-15 13:39
Folgendes sehr einfaches Script läuft seit mehreren Monaten, eher Jahren, einwandfrei (wird per crontab 1x am Tag gestartet):
Nun tut es plötzlich nicht mehr - sprich rsync läuft offenbar nicht mehr.
Nach ein wenig herumprobieren, hab ich schnell herausgefunden, dass der Wert von RSYNC_IS_RUNNING nicht "0" sondern "3" ist (an der Stelle des auskommentierten echos). Logisch also, dass er den Block mit dem rsync-Kommando gar nicht erst betritt.
Führe ich den Befehl in den Backticks aber direkt auf der Shell aus (als root, Script läuft ebenfalls als root) erhalte ich wie erwartet "0" und nicht "3".
Dachte erst an ein Problem mit den Backticks (falsches Zeichen o.ä.) - aber in anderen Scripts funktionieren die auf der gleichen Maschine einwandfrei. Zudem ein an dieser Stelle zum gleichen Ergebnis kommt.
Was übersehe ich hier? Was könnte ich noch ausprobieren?
Code: Select all
#!/bin/sh
RSYNC_IS_RUNNING=`ps -ef | grep -v grep | grep -ic rsync`
#echo $RSYNC_IS_RUNNING
if [ $RSYNC_IS_RUNNING = 0 ]
then
rsync -vaz --delete --force --bwlimit=800 --exclude=.* --partial -e "ssh -pxxxxx" /xxx/xxxx/ xxxxx@xxxxx.xxxxxxx.xx:/xxx/xxxx > /dev/null
fiNach ein wenig herumprobieren, hab ich schnell herausgefunden, dass der Wert von RSYNC_IS_RUNNING nicht "0" sondern "3" ist (an der Stelle des auskommentierten echos). Logisch also, dass er den Block mit dem rsync-Kommando gar nicht erst betritt.
Führe ich den Befehl in den Backticks aber direkt auf der Shell aus (als root, Script läuft ebenfalls als root) erhalte ich wie erwartet "0" und nicht "3".
Dachte erst an ein Problem mit den Backticks (falsches Zeichen o.ä.) - aber in anderen Scripts funktionieren die auf der gleichen Maschine einwandfrei. Zudem ein
Code: Select all
RSYNC_IS_RUNNING=$(ps -ef | grep -v grep | grep -ic rsync)Was übersehe ich hier? Was könnte ich noch ausprobieren?