It seems to me that the | is interpreted literally. You need to escape it like this in your command variable: \|
To make the logfile and source/destination paths "space proof" when you store the command in a variable you add escaped " around the paths like this: \"/path/to/logfile\". You should also check out running your command with eval, even if it is not needed in your exact scenario. Mvh *Hans-Kristian Bakke* Mob: 91 76 17 38 On 24 January 2013 12:08, Joe <jose...@main.nc.us> wrote: > 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 >
-- 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