我知道有两种或两种以上的工作方法rsync
:
第一个要求在目标机器上安装 rsync,然后您可以运行如下命令:
rsync -avz file username@machine_ip:/path/to/destination
我还知道另一种方法,该方法需要您/etc/rsyncd.conf
在目标机器上进行配置并设置“rsync 共享”。
例子:
[test]
comment = /tmp/test
path = /tmp/test
read only = no
list = yes
uid = 10155
gid = 10015
auth users = appadmin
secrets file = /etc/rsyncd.secrets
hosts allow = 10.13.1.1
那么命令看起来就像这样:
rsync -raPv files rsync://[email protected]/rsync_share --password-file /etc/rsync.passwd
我的目标是在两个目录之间进行同步,而目标机器是远程机器。
我想知道每种方法有什么好处以及推荐的使用方法是什么rsync
?
答案1
第一种方法允许您从客户端控制正在同步的内容。
第二种方法是配置一个 rsync“服务器”来控制您能够同步的内容。
还有第三种方法,我正在使用它:rsync-over-ssh(rsync -e ssh [其余选项]),并且有一个技巧可以限制在服务器端实际可以检索的内容。我通常通过 ssh 正常测试同步,然后当我对结果满意时,我会通过 strace 运行相同的命令(strace -f -s512 -o ~/strace.log -eexecve rsync ...)。strace.log 文件将包含 rsync 通过 ssh 执行的一行,获取该行并将其添加到远程的 ~/.ssh/authorized_keys 中,作为 command="rsync_line_goes_here" 位于相应密钥前面 :)。从那时起,rsync 配置就被“锁定”,并且只允许通过该链接使用该配置。