![两台服务器之间的文件夹同步](https://linux22.com/image/603860/%E4%B8%A4%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E5%90%8C%E6%AD%A5.png)
我想和你分享我的问题。我的老板希望我在两台不同的服务器上创建 2 个文件夹。我的第一台服务器位于德国,第二台位于印度。我在印度服务器上拥有管理员访问权限,在德国服务器上拥有远程访问权限,但没有管理员访问权限。在德国服务器上拥有简单的用户访问权限。我的老板希望当他们将数据放在德国服务器上时,我创建的文件夹将自动与印度服务器同步,我们将在印度文件服务器中收到所有数据。另一个文件夹位于哪里。他告诉我我将通过 cron 作业创建此作业。请告诉我如何完成这项工作?
我在印度服务器上使用 ubuntu 文件服务器。我通过远程桌面连接使用德国服务器。我在那里只使用网络驱动器。我在那里只有用户权限。
答案1
你可以使用 crontab 运行rsync
命令
您可以通过现有的 VPN 连接、SSH 或本地挂载目录执行此操作。对于您的情况,一个好的起点可能是本文档展示了通过 SSH 进行 rsync 以及所需的 crontab 和命令
rsync 的优点是,在对每一方的内容和变化的内容进行(相当耗费 CPU 的)分析之后,它将仅复制发生变化的内容(即新文件或修改过的文件,在这种情况下只会发送文件中发生变化的部分!)
(根据文件类型是否压缩:如果大多数是文本,则压缩,如果大多数是二进制文件或已压缩文件,则不压缩)
但是 rsync 需要一些时间才能真正了解它的工作原理:例如,请注意,根据您指定源目录和/或目标目录的方式(以“/”结尾或不以“/”结尾),行为会非常不同。有时您必须说“dir”,有时说“dir/”,这取决于您希望如何更新目录。我建议您在虚拟子目录(/tmp/a/safe/place,到另一台主机 /tmp/another/safe/dir)上进行大量测试(特别是如果您还使用“--delete”,它也会删除以使两者匹配:不要添加 --delete,除非您 100% 确定要删除什么以及何时删除)
否则,如果您的某台服务器无法使用 rsync,请使用任何可用的复制程序(robocopy 等)。tar 通常可在多个平台上使用
答案2
您可能想要尝试通过 SMB 安装德国服务器,然后从那里复制(使用 cron 作业)。