如何在 Linux 上使用 rsync 保持本地和远程文件夹(及其子文件夹)完全同步?
所以我有一个本地文件夹 A 和一个远程文件夹 B。
无论变化发生在哪里我都希望最新的文件和文件夹与另一台机器同步。
例子:
文本文件在文件夹 A 中更新。几分钟内,文件夹 B 也会相应更新。
或者:
文本文件在文件夹 B 中更新。几分钟内文件夹 A 也会相应更新。
它不必完全是即时的,因此不需要 inotifywait 或类似工具。我最有可能制作一个 cron 脚本。
但是 rsync 部分看起来怎么样,特别是那些讨厌的标志?
维萨
答案1
您需要添加一个 rsync 命令作为 cron。这将自动同步本地文件夹 A 和远程文件夹 B 之间的更改。由于您想要双向设置同步,因此您还需要使用 rsync 从远程同步到您的服务器。所以基本上是 2 个 rsync。
rsync -rtuv <path to folder A> <user>@<ip/hostname>:<path to folder B>
rsync -rtuv <user>@<ip/hostname>:<path to folder B> <path to folder A>
只需运行两次,使用“较新”模式(-u 或 --update 标志)加上 -t(复制文件修改时间)、-r(用于递归文件夹)和 -v(用于详细输出以查看其正在做什么)。
您还可以检查 Unison。 http://www.cis.upenn.edu/~bcpierce/unison/index.html