题
我想在两个方向上使用rsync 同步两个目录。
我指的是传统意义上的同步
(不在rsync手册中的含义):
我想更新两个方向的目录,
取决于哪些更新。
这可以通过rsync (最好是以Linux方式)来完成吗? 如果没有,还有其他解决方案吗?
解决方案
只需运行两次,使用<!>“更新<!>”; mode(-u或--update标志)加-t(复制文件修改时间), - r(用于递归文件夹)和-v(用于详细输出以查看它在做什么):
rsync -rtuv /path/to/dir_a/* /path/to/dir_b
rsync -rtuv /path/to/dir_b/* /path/to/dir_a
这不会处理删除,但我不确定只有定期同步才能解决这个问题。
其他提示
您知道 Unison File Synchronizer 吗?
Unison是一个文件同步工具 适用于Unix和Windows。它允许两个 文件集合的复制品 要存储在不同的目录 主机(或同一个不同的磁盘) 主机),单独修改,然后 通过传播来提升最新动态 每个副本更改为另一个副本。 ...
另请注意,它对失败具有弹性:
Unison可以抵御失败。它是 小心翼翼地留下复制品及其复制品 一个明智的私人结构 始终处于状态,即使是在 异常终止或通信失败。
谢谢jsight
rsync -urv --progress dir_a dir_b && rsync -urv --progress dir_b dir_a
这将导致第一次同步结束后立即发生第二次同步。如果目录结构很大,这将节省时间,因为不需要坐在电脑前。如果结构很大,请删除详细和进度
rsync -ur dir_a dir_b && rsync -ur dir_b dir_a
使用rsync <OPTIONS> [hostname:]source-dir [hostname:]dest-dir
例如:
rsync -pogtEtvr --progress --bwlimit=2000 xxx-files different-stuff
将xxx文件同步到不同的东西/ xxx文件。如果不存在不同的东西/ xxx文件,它会创建它 - 即复制它。
-pogtEtv
- 只是保留文件元数据的一堆选项,加上v - verbose和r - recursive
--progress
- 显示实时同步的进度 - 如果您复制大文件,则非常有用
--bwlimit=2000
- 设置复制/同步的最大速度(bw =带宽)
P.S。 rsync对于本地计算机上的网络工作至关重要,您可以使用 cp 等命令。
祝你好运!我正在使用rsync
和inotifywait
。
当您更改任何文件时,<=>将被执行。
inotifywait -m --exclude "$_LOG_FILE" -r -e create,delete,delete_self,modify,moved_to --format "%w%f" "$folder"
您需要在两台主机上运行<=>。请查看示例 inotifywait
您需要的是 Rclone 。 Rclone(<!>; rsync for cloud storage <!> ;;)是一个命令行Linux程序,用于将文件和目录同步到不同的云存储提供程序(box,dropbox,ftp等)和本地文件系统。 Rlone仅支持镜像同步。
另一个包含实时同步的图形化解决方案是使用 FreeFileSync ,其中包括RealTimeSync程序。 FreefileSync支持双向双向同步,包括处理删除。