Make an rsync using script with old and new versions of rsync without using the "old" way (--old-args)?

Wayne Davison wayne at opencoder.net
Sat Sep 10 15:20:21 UTC 2022


On Fri, Sep 2, 2022 at 1:19 AM c.buhtz wrote:

>   4. `--protect-args` activates the "new" behavior
>

Essentially, just in a way that has a couple drawbacks: it would have
refused to work with rsyncs older than 3.0.0, and it would have refused to
work with a remote rrsync setup (since the "protected" args are sent via
the protocol where rrsync can't see them to verify them).

  5. `--old-args` and `--protect-args` are the opposite of each other?


Yes, protecting the args prevents things like remote space splitting and
such.

My goals are
>   1. Use the "new" arg protection way introduced with 3.2.4
>   2. Scripts/applications using that "new way" should work with old and
> new versions of rsync without checking for the rsync version on the
> current system.
>

The easiest way to do that in a script or even in a user's shell-rc files
is to export 2 environment variables:

export RSYNC_OLD_ARGS=0
export RSYNC_PROTECT_ARGS=1

If rsync is 3.2.4 or newer, it will see the newer env var and continue with
its new-style arg protection (since the 0 tells it you don't
want --old-args to be used).  An older rsync will not even notice that
variable and will instead ensure that --protect-args is enabled by default,
giving it a similar style of arg protection, just one that will complain if
a remote rsync is 2.6.9 (which should be pretty much gone these days) or an
rrsync restricted shell.  These variables don't interfere with manual
overrides on the command-line -- they just ensure the default is what you
want.

Your suggestion of forcing on --seclude-args (aka --protect-args) via -s is
also a reasonable way to go in most instances.

I'm using `-s` here because `--protect-args` will be renamed to
> `--secluded-args` in rsync 3.2.6.
>

Just because --secluded-args is its new name doesn't mean that rsync stops
accepting the older arg name. But -s is always easier to type.

..wayne..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/rsync/attachments/20220910/7a68d5d0/attachment.htm>


More information about the rsync mailing list