In my new bash script, I'm doing what I think is a very simple rsync command the way I'm used to doing it. I just do a lot of setup and checking before I get to it.
When I run it, it gets very unhappy with me. It's probably something very simple. I need to build the rsync command in a string so that some things can go away - like if my variables DRY_RUN and DELETE are undefined, they should be gone when the string is evaluated. Without this, DRY_RUN turns into "" and rsync still sees it as the first (null) parameter and gets totally lost. I brought this up in a previous thread here awhile ago. The ls commands are only in the script to document the state of things right before rsync runs. The first version of COMMAND (commented out here) was intended to protect the arguments if there were embedded blanks. It also fails when I use it, but with slightly different error messages. /home/bigbird/pgm/backup_periodic/ is where the script is stored and is the current directory when it runs. This script is nested within a couple of others, the first of which calls the the second using sudo, so everything runs as root. I'm running my script with shopt -s -o xtrace # debug shopt -s -o verbose # debug That's what makes this output a little dense, but complete. What the heck am I doing to get rsync so confused? (The destination was built using my previous notebook (RIP). That's why there's so much more in it. I'll move things around before I run anything with --delete.) BTW, when I first ran this, my log file did not exist and rsync said it would ignore it because it didn't exist. In the past, this worked fine. If it wasn't there, rsync just created it (which is the expected behavior - at least to me). TIA Joe kubuntu precise (12.04), 64-bit i5 notebook running in konsole under KDE. bigbird@ramdass:~/bin$ rsync --version rsync version 3.0.9 protocol version 30 ls -l ${LOGFILE1} + ls -l /home/bigbird/rlog/ramdass-01-internal_webcasts_log -rw-rw-rw- 1 bigbird bigbird 0 Jan 24 05:11 /home/bigbird/rlog/ramdass-01-internal_webcasts_log ls -l ${LOGFILE2} + ls -l /home/bigbird/rlog/ramdass-01-internal_webcasts_output -rw-rw-rw- 1 root root 0 Jan 24 05:11 /home/bigbird/rlog/ramdass-01-internal_webcasts_output ls -l ${MOUNT_POINT[0]}/${DIRECTORY[0]}/ + ls -l /media/dataspace/data/webcasts/ total 12 drwxrwxr-x 5 bigbird bigbird 4096 Dec 14 13:24 Business drwxrwxr-x 13 bigbird bigbird 4096 Jan 19 06:07 Health drwxrwxr-x 10 bigbird bigbird 4096 Jan 10 12:38 Spiritual ls -l ${MOUNT_POINT[1]}/${DIRECTORY[1]} + ls -l /media/dest/data/webcasts total 44 drwxr-xr-x 6 bigbird bigbird 4096 Jun 4 2011 Business drwxr-xr-x 2 bigbird bigbird 4096 May 5 2012 Comedy drwxr-xr-x 2 bigbird bigbird 4096 Oct 20 2011 Computer drwxr-xr-x 4 bigbird bigbird 4096 Jun 4 2011 Eco drwxr-xr-x 3 bigbird bigbird 4096 Oct 26 2011 Education drwxr-xr-x 13 bigbird bigbird 4096 Oct 31 2011 Health drwxr-xr-x 2 bigbird bigbird 4096 Nov 4 2011 Links drwxr-xr-x 2 bigbird bigbird 4096 Nov 6 2011 Music drwxr-xr-x 2 bigbird bigbird 4096 Sep 26 2011 Nature drwxr-xr-x 10 bigbird bigbird 4096 Nov 2 2011 Spiritual -r--r--r-- 1 bigbird bigbird 1043 Dec 19 2010 webcasts-info.txt ##COMMAND="rsync ${DRY_RUN} -avushi ${DELETE} --stats --progress --log-file=\"${LOGFILE1}\" \"${MOUNT_POINT[0]}/${DIRECTORY[0]}/\" \"${MOUNT_POINT[1]}/${DIRECTORY[1]}\" | tee \"${LOGFILE2}\"" COMMAND="rsync ${DRY_RUN} -avushi ${DELETE} --stats --progress --log-file=${LOGFILE1} ${MOUNT_POINT[0]}/${DIRECTORY[0]}/ ${MOUNT_POINT[1]}/${DIRECTORY[1]} | tee ${LOGFILE2}" + COMMAND='rsync -n -avushi --stats --progress --log-file=/home/bigbird/rlog/ramdass-01-internal_webcasts_log /media/dataspace/data/webcasts/ /media/dest/data/webcasts | tee /home/bigbird/rlog/ramdass-01-internal_webcasts_output' echo "RUNNING [[${COMMAND}]]" ## let user see what's being done + echo 'RUNNING [[rsync -n -avushi --stats --progress --log-file=/home/bigbird/rlog/ramdass-01-internal_webcasts_log /media/dataspace/data/webcasts/ /media/dest/data/webcasts | tee /home/bigbird/rlog/ramdass-01-internal_webcasts_output]]' RUNNING [[rsync -n -avushi --stats --progress --log-file=/home/bigbird/rlog/ramdass-01-internal_webcasts_log /media/dataspace/data/webcasts/ /media/dest/data/webcasts | tee /home/bigbird/rlog/ramdass-01-internal_webcasts_output]] ${COMMAND} ## Do it! + rsync -n -avushi --stats --progress --log-file=/home/bigbird/rlog/ramdass-01-internal_webcasts_log /media/dataspace/data/webcasts/ /media/dest/data/webcasts '|' tee /home/bigbird/rlog/ramdass-01-internal_webcasts_output sending incremental file list rsync: link_stat "/home/bigbird/pgm/backup_periodic/|" failed: No such file or directory (2) rsync: link_stat "/home/bigbird/pgm/backup_periodic/tee" failed: No such file or directory (2) rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32) ERROR: destination must be a directory when copying more than 1 file rsync error: errors selecting input/output files, dirs (code 3) at main.c(571) [Receiver=3.0.9] rsync: connection unexpectedly closed (9 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9] RC=$? + RC=12 -- Please use reply-all for most replies to avoid omitting the mailing list. To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html