我想在两个方向上使用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 等命令。

祝你好运!

我正在使用rsyncinotifywait。 当您更改任何文件时,<=>将被执行。

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支持双向双向同步,包括处理删除。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top