齐奏

齐奏

我在外部 HDD 上有一个文件夹 A,比如说 HDD-A,而在外部 HDD-B 上有一个文件夹 B。

有没有办法自动同步两个文件夹?实时同步或至少每天同步一次

答案1

我用rsync 安装 rsync对于这样的任务:

rsync -a "/path/to/hdd1/dir-a" "/path/to/hdd2/dir-b"

你可以添加 cron 任务要安排任务,我建议将rsync的输出重定向到日志文件。例如每 10 分钟运行一次并将输出保存在 中~/logs/rsync.log

*/10 * * * * rsync -a "/path/to/hdd1/dir-a" "/path/to/hdd2/dir-b" >~/logs/rsync.log

如果你更喜欢 GUI,你可以使用grsync 安装 grsync

同步

当您根据需要进行配置后,按Alt+R显示相应的命令行。

答案2

齐奏

您可以使用齐奏保持两个路径双向同步。与 rsync 等简单程序相比,使用 unison 的好处在于它具有内置冲突解决处理功能。例如,如果pathA/foo.txtpathB/foo.txt都发生了变化,程序需要知道您想要哪个文件。

unison 的基本用法是:

$ unison -auto path/to/A path/to/B

然后它将尝试保持下面的结构path/to/A同步path/to/B。您还可以添加-batch标志以使其以非交互方式工作,尽管冲突不会通过这种方式得到解决。

Unison 会保存每个同步对的状态,因此它会记住您对冲突解决的偏好。针对不同的使用情况,有相当多的选项可供选择。

它在 Ubuntu 中以软件包形式提供unison。GUI 版本也以 形式提供unison-gtk

警告与所有自动同步解决方案一样,请先在测试环境中熟悉该程序。还请仔细阅读文档。很容易搞砸并最终覆盖错误的文件。

扩展手册:

有关的:

答案3

我可以推荐免费文件同步。它工作快速且出色。

Ubuntu 上的 FreeFileSync

我使用它来进行 HDD、USB 闪存、SSHFS、Samba 共享和/或本地文件夹之间的同步。

它还具有实时同步模式(称为实时同步)。

您可以作为 FlatPak 安装:

sudo apt-get install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.freefilesync.FreeFileSync

它与 Meld ( ) 配合使用效果很好sudo apt-get install meld
您需要打开 FreeFileSync 选项 (工具→选项),然后在第一行添加以下内容:

 |        Description       |             Command line            |
 |  Compare files in Meld   |  meld "%item_path%" "%item_path2%"  |

如截图所示:

FreeFileSync 工具→选项

相关内容