rsync parameters errors

Joe josephj at
Thu Jan 24 04:08:52 MST 2013

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).


kubuntu precise (12.04),  64-bit i5 notebook  running in konsole under KDE.
bigbird at 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
ls -l ${LOGFILE2}
+ ls -l /home/bigbird/rlog/ramdass-01-internal_webcasts_output
-rw-rw-rw- 1 root root 0 Jan 24 05:11
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
/media/dataspace/data/webcasts/ /media/dest/data/webcasts | tee
echo "RUNNING [[${COMMAND}]]" ## let user see what's being done
+ echo 'RUNNING [[rsync -n -avushi  --stats --progress
/media/dataspace/data/webcasts/ /media/dest/data/webcasts | tee
RUNNING [[rsync -n -avushi  --stats --progress
/media/dataspace/data/webcasts/ /media/dest/data/webcasts | tee
${COMMAND}                    ## Do it!
+ rsync -n -avushi --stats --progress
/media/dataspace/data/webcasts/ /media/dest/data/webcasts '|' tee
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)
+ RC=12

More information about the rsync mailing list