Invoking rsync from a script with null parameters

Joe josephj at main.nc.us
Mon Nov 5 09:46:19 MST 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thanks for duplicating this.  Even though it's a very small issue, it
would be good to fix it (make it an error) because this almost invisible
scripting error can lead to very unpredictable results just depending on
the current working directory which shouldn't have any impact at all
unless it is explicitly referenced in the parameters.

Your approach gets all the substitutions done before rsync gets to see
it, so "sometimes a blank is really just a blank" ;)   .
Joe

On 11/05/2012 11:06 AM, Kevin Korb wrote:
> Very interesting. It does appear to take '' or "" as if it were "./"
> in fact it appears to tale " " or ' ' as "./ " which throws an error.
>
> I think the reason I haven't seen this before is that I always built
> up a $RSYNC_PARAMS variable and passed that to rsync. That variable
> always had some params in it just they weren't always the same.
>
> On 11/05/12 02:39, Joe wrote:
>
> > No. I traced the heck out of it (bash -vx ...) and I was actually
> > sending a null parameter as the first argument to rsync and that
> > made it get out of bed on the wrong side.
>
> > Here are some more details as to what happened:
>
> >
http://askubuntu.com/questions/112717/rsync-copies-files-from-working-directory-in-addition-to-the-requested-ones/113431
>
> > Essentially, rsync worked, but additionally processed all the
> > files in the current working directory when that wasn't expressly
> > requested. Since null parameters are almost totally invisible, it
> > took awhile to find.
>
> > Sorry I didn't include more details in my original post.
>
> > On the bright side, this is what caused me to join this list.
> > I've learned a lot - mostly by lurking.
>
> > Thanks. Joe
>
> > On 11/04/2012 10:35 PM, Kevin Korb wrote:
> >> I suspect you are missing a space somewhere and are ending up
> >> with 2 parameters stuck together. You can have bash output the
> >> rsync command line it intends to run to make sure or you can just
> >> use " " instead of "" as extra spaces between parameters will
> >> have no effect.
>
> >> On 11/04/12 22:23, Joe wrote:
> >>> I'm working on a bash backup script using rsync. (kubuntu
> >>> precise 12.04, rsync 3.0.9-1ubuntu1)
>
> >>> To avoid having a number of slightly different rsync commands,
> >>> I would like to use shell variables as part of the rsync
> >>> command. I.e.: DRYRUN="-n" rsync "${DRYRUN}" more parameters
> >>> ...
>
> >>> This does not work if DRYRUN="" - apparently because this
> >>> command becomes rsync "" more parameters ... instead of rsync
> >>> more parameters ...
>
> >>> and rsync uses the null parameter for something and does not
> >>> perform as expected. It does not generate any error or
> >>> diagnostic message.
>
> >>> Is there a way to get around this problem - other than coding
> >>> each permutation of the command separately?
>
> >>> I'm experimenting with putting the whole rsync command in a
> >>> string so I can run it after any null parameters revert to pure
> >>> white space. Once I get the quoting to work (preserving those
> >>> quotes I still need), this method should work, but it's less
> >>> than elegant.
>
> >>> Is this a bug in rsync? (Shouldn't it at least complain/error
> >>> exit if it gets something like this that it doesn't
> >>> understand?) If it is, what's the best way to report it?
>
> >>> Ideally (for me anyway), I would like it to completely ignore
> >>> any null parameters, but I don't know what problems that might
> >>> cause for other people.
>
> >>> TIA
>
> >>> Joe
>
>
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQEcBAEBAgAGBQJQl+1MAAoJELWM3hHMxTQOGU8H/3J5jsMe1QqcSfnhiR1Y3PNK
RseQLv1CMpxX6pQom9rxmpOWaH9IhgmZxt8bPkb9qsWa7HMnaGC1o3xPq8V9fSdo
HKKXiy+V9AlEqyFIVR+rNh1Qdcc9Gs3h5nb3gMWFEga8fTTN9FzEqzEZYKrIA0MQ
qDm03iOkV3XjlGygUFAUeMUe0zJA5evqgRFhzqPRAjT2nzyH6hjBZ3MHmuk94mMQ
mIiYILD0nx3EQpFnUXJSYqa4861R8tV1u+7t9JyKMUWY00MWZ/8Go4UZyn9kjfdQ
TAz7cXqsZm1xAaNDahEM5muZ2lEdv99pAmUjpHsX6m1wHw6KqvTw8FlGKPB7M6Y=
=IPqG
-----END PGP SIGNATURE-----

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/rsync/attachments/20121105/3d99e8f9/attachment.html>


More information about the rsync mailing list