Hi I have got 2 NAS devices and I want to set up a nightly rsync backup from NAS1 to NAS2. On NAS1 I have the rsync script working fine if I start it from command line. (> /ffp/bin/snapshotMYBOOKWORLD.sh)No problems with ssh password etc. However, if I run the script via a crontab entry, I get rsync errors. What causes the script to fail? This is the rsync error I get 20110828_040508 rsync: Failed to exec ssh: No such file or directory (2) rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.5] rsync: writefd_unbuffered failed to write 4 bytes [sender]: Broken pipe (32) rsync error: error in IPC code (code 14) at io.c(1509) [sender=3.0.5] 20110828_040509 This is my crontab: root@DLINK:~# crontab -l 32 2 * * * /usr/sbin/rtc -s 30 2 2 * * /usr/sbin/rtc -c 59 1 * * * /usr/sbin/daylight & 5 2 * * * /ffp/bin/snapshot.sh 5 2 * * * /ffp/bin/snapshot.sh 5 4 * * * /ffp/bin/snapshotMYBOOKWORLD.sh root@DLINK:~# This is the backupscript root@DLINK:~# ls -l /ffp/bin/snapshotMYBOOKWORLD.sh -rwxrwxrwx 1 root root 806 Aug 21 11:56 /ffp/bin/snapshotMYBOOKWORLD.sh Hope someone can help me! Regards Frank
Not sure I use full paths ... The funny thing is that the script runs fine when started from command line, but not when started via Crontab. This is the backupscript: # Set Source Path # Back up the A drive (HD_a2) by identifying the source path as /mnt/HD_a2 # Back up multiple directories by surrounding a list with single quotes (i.e., s # srcpath='/mnt/HD_a2/VIDEO /mnt/HD_a2/DOCUMENTEN /mnt/HD_a2/FOTOS /mnt/HD_a2/CO srcpath='/mnt/HD_a2/DOCUMENTEN /mnt/HD_a2/VIDEO /mnt/HD_a2/FOTOS' # Set the Destination Path [email protected]:/shares/internal/BACKUPNAS ffppath=/ffp datum=`date "+%Y%m%d_%H%M%S"` echo $datum >> $ffppath/log/snapshotMYBOOKWORLD.log 2>&1 $ffppath/bin/rsync -av $srcpath $dstpath >> $ffppath/log/snapshotMYBOOKWORLD.log datum=`date "+%Y%m%d_%H%M%S"` echo $datum >> $ffppath/log/snapshotMYBOOKWORLD.log 2>&1
You could use the full path for the date command (for example /bin/date). You can find that out by running Code: which date Do the same for the echo command.
Got it solved! The cause was indeed the paths. I changed the rsync command into this and it works like a charm. $ffppath/bin/rsync -av -e /ffp/bin/ssh $srcpath $dstpath >> $ffppath/log/snapshotMYBOOKWORLD.log 2>&1 Thanks for the hint!
By the way, one less important thing i cant explain.... The crontab - l shows this: root@DLINK:~# crontab -l 32 2 * * * /usr/sbin/rtc -s 30 2 2 * * /usr/sbin/rtc -c 59 1 * * * /usr/sbin/daylight & 5 2 * * * /ffp/bin/snapshot.sh 5 2 * * * /ffp/bin/snapshot.sh 5 4 * * * /ffp/bin/snapshotMYBOOKWORLD.sh As you can see /ffp/bin/snapshot.sh is started twice ... how can this be? Crontab is configured using this script: #!/bin/sh CRONTXT=/mnt/HD_a2/crontab.txt # start with existing crontab /bin/crontab -l > $CRONTXT # add the Rsync job to execute at 2:00 am /bin/echo "5 2 * * * /ffp/bin/snapshot.sh" >> $CRONTXT /bin/echo "5 4 * * * /ffp/bin/snapshotMYBOOKWORLD.sh" >> $CRONTXT # install the new crontab /bin/crontab $CRONTXT # clean up /bin/rm $CRONTXT
Thanks, crontab -e gives a kind of vi script which allows to delete one of the entries. Done deal! So I've got an rsync backup solution up and runnning to a seperate device, which keeps my data super safe.