我想知道我是否可以同步两个服务器的文件夹,例如服务器 1 插件的更新应该反映在服务器 2 上。如果我们从服务器 2 执行此操作,它应该反映在服务器 1 上。
为此我应该使用什么 rsync 命令?
我已经尝试过以下命令
r sync -avWe ssh --delete-before //public_html/ [email protected]:/home/public_html/
但它从两台服务器中删除了新添加的文件。
答案1
您不能将 rsync 与远程源和远程目标一起使用。假设两个服务器不能直接相互通信,则可以使用 ssh 通过本地计算机建立隧道。
你可以使用这个
ssh -R localhost:50000:host2:22 host1 'rsync -e "ssh -p 50000" -vuar /var/www localhost:/var/www'
/var/www 的第一个实例适用于 host1 上的源,localhost:/var/www 对应于 host2 上的目标。如果您好奇的话,-R 选项会从 host1 上的端口 50000 设置一个反向通道,该通道(通过您的本地计算机)映射到 host2 上的端口 22。从 host1 到 host2 没有直接连接。
原文来源: https://unix.stackexchange.com/questions/183504/how-to-rsync-files-between-two-remotes