rsync:如何从远程主机中提取 --exclude-from 文件?

rsync:如何从远程主机中提取 --exclude-from 文件?

我正在通过网络设置自动 rsync,使用(或尝试使用)以下命令:

 rsync -e ssh -avhxAXHr --rsync-path="sudo rsync" --exclude-from=:$EXCLUDEFILE --link-dest=$LINKDEST --files-from=:$SOURCES backupuser@${RMTHST}:/ $DESTDIR

我想让源主机负责可以复制的内容。为此,我锁定了源主机上 backupuser 的 sudo 条目,以便它--files-from从源主机拉取文件。 sudoers 条目如下所示:

backupuser ALL(root:root) /usr/bin/rsync --server --sender -vlHogDtpAXrRxe.iLs --files-from /securepath/from-file . /

rsync 手册页指出:

...the --files-from file can be read from  the  remote host instead of the
local host if you specify a "host:" in front of the file (the host must
match one end of the transfer).  As a short-cut, you can specify just a
prefix of ":" to mean "use the remote end of the transfer". For example:

   rsync -a --files-from=:/path/file-list src:/ /tmp/copy

由于我将--files-from在源主机上维护该文件,因此我--exclude-from也应该在源主机上维护该文件。但是,rsync 手册页没有描述从远程主机提取文件的方法 --exclude-from,并且当使用与 --files-from 类似的格式时,我的测试失败了。从安全角度来看,这不是什么大问题,但在处理多个服务器时,无法将两个文件维护在同一位置可能会成为管理上的难题。

我错过了什么吗?有没有办法让 rsync 从远程服务器拉取两个文件(缺少运行单独的初始 rsync 来首先拉取 --exclude-from 文件)?

答案1

如果您已经在远程使用 sudo,并且还想控制远程访问的内容,那么您还应该考虑使用 rsync 作为守护进程。看手动 rsyncd.conf

这意味着您打开了一扇门,通过它您可以控制哪些文件可见、数据可以流向什么方向(例如只读)、服务何时可用等等。您不需要 sudo,并且可以限制允许哪些用户登录。

/etc/rsyncd.conf特别是,您可以指定一个排除文件

 exclude from = somefilename

相关内容