Invoking rsync from a script with null parameters
Kevin Korb
kmk at sanitarium.net
Mon Nov 5 09:06:55 MST 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
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
>
>
>
- --
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~
Kevin Korb Phone: (407) 252-6853
Systems Administrator Internet:
FutureQuest, Inc. Kevin at FutureQuest.net (work)
Orlando, Florida kmk at sanitarium.net (personal)
Web page: http://www.sanitarium.net/
PGP public key available on web site.
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
iEYEARECAAYFAlCX5B8ACgkQVKC1jlbQAQex4wCfVsvSAj12z/xZYtAUOwJtWWS1
hdcAn0SUcRTr3HXqFpQdWtSDHa/GR+q+
=kko1
-----END PGP SIGNATURE-----
More information about the rsync
mailing list