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

Wayne Davison via rsync <[email protected]>
Newsgroups gmane.network.rsync.general
Message-ID <CAHSx_Ss6=cB9rWxWG_br6jn0k_O7rtL1+DVxcDQ081tL3jOedg@mail.gmail.com>
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..

-- 
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.