自动对两个目录进行双向同步

自动对两个目录进行双向同步

我想在文件夹Directory A和之间进行双向自动同步Directory B。这意味着,每当 中的文件Directory A或其子目录中的文件发生更改时,该更改将立即应用于Directory B,并且每当 中的文件Directory B或其子目录中的文件发生更改时,该更改将立即应用于Directory A。因此,这两个目录将完全相同,包括文档属性。我该如何实现这一点?

我正在使用 Ubuntu 16.10。

符号链接不是一种选择。

答案1

齐奏

Unison 是一款基于 GUI 和终端的工具,它允许文件和目录在不同的本地目录和驱动器之间或网络上保持同步,这些目录和目录可能位于不同的操作系统上。该应用程序适用于 Unix 操作系统(Linux 和 Mac OS X)和 Windows。可以在不同的地方进行更改,Unison 将使用正确版本的文件和文件夹更新机器,并根据需要复制、删除、重命名或删除文件和目录。

Unison 同步应用程序可能是 Ubuntu/Debian 社区使用最多、最受信任的应用程序。它可在软件中心和包管理器中找到。它有一个命令行和一个图形用户界面 (GUI) (GTK)。

Ubuntu 帮助社区 Wiki - Unison

Ubuntu 手册 - Unison

您可以在以下位置找到与您的请求接近的简短使用示例Rmano 答案(下面的截图)。

截屏

免费文件同步

FreeFileSync 是一款免费的数据备份软件,可帮助您同步文件和同步文件夹。它旨在节省您设置和运行数据备份的时间,同时提供良好的视觉反馈。FreeFileSync 是开源软件,适用于 Windows、Linux 和 macOS。

我从未尝试过,但似乎值得一试。它有一个默认的 GUI,并且正在积极开发中。

截屏

辛克龙

Synkron 是一款可帮助您始终保持文件和文件夹更新的应用程序。您可以轻松同步文档、音乐或图片,以便在任何地方都能获得最新版本。Synkron 提供易于使用的界面,并具有许多功能。此外,它是免费的、开源的和跨平台的。

截屏

答案2

很长一段时间我使用 rsync 来同步我的笔记本电脑(2)和第三台机器,然后我尝试同步但今天早上一个著名的搜索引擎向我提供了这个项目:

镜子

Mirror 旨在支持双机(例如台式机+笔记本电脑)开发工作流程,您可以在功能强大/专用的台式机上运行命令行编译/构建过程,但仍可在笔记本电脑上远程编辑文件。

您还将发现不同解决方案的比较。

他反对的主要论点同步不是实时的,也不是正式两种方式。

PS:我通过zerotier使用它,所以我的机器总是能够互相通信。

答案3

我会推荐这个synkron工具。这是一个适用于 Linux(和其他操作系统)的开源应用程序。根据时间戳,更新文件的最新版本会更新到文件夹中。同步频率由用户定义。

要安装它,您必须构建它,这需要 Qt 4.3 或最新版本。

检查 sourceforge 页面 (sourceforge 上的 synkron)查看下载和安装详细信息。

rsync+cron与其他简单方法相比的优势:

  • 创建一个临时备份,并保存一定时间。
  • 不传播删除的选项。
  • 多个文件夹可以链接为主文件夹,或从属主文件夹配置。

项目页面 -Synkron 页面/ 文档 - Synkron 文档

答案4

我在对 lsyncd 感到失望之后写了 Poni,lsyncd 无法正确同步,我不得不不断重启服务才能获取 inotif 的更改,

这是一个用 Crystal 编写的二进制文件,它使用 inotify lib 和 rsync 在 2 个主机之间进行实际的文件/目录同步,现在在生产中使用它,没有问题

https://github.com/perfecto25/poni

还有一个 Python 版本,

https://github.com/perfecto25/isync

相关内容