Invoking rsync from a script with null parameters
Kevin Korb
kmk at sanitarium.net
Mon Nov 5 09:48:15 MST 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Well, I am thinking that this is actually expected behavior that I had
just never seen before. Even cat and ls duplicate this behavior.
On 11/05/12 11:46, Joe wrote:
>
> 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
>
>
>
>
>
- --
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~
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/
iEYEARECAAYFAlCX7c8ACgkQVKC1jlbQAQe6KACgxxFlf9E+zYAe9xfEkMdzZAKR
WEsAoLh6+08EKM2QG2BoUpUnMFch6Lcm
=KMuV
-----END PGP SIGNATURE-----
More information about the rsync
mailing list