使用 Unison 减少硬盘驱动器同步时间

使用 Unison 减少硬盘驱动器同步时间

我使用 Unison 将我的音乐收藏同步到几个不同的源,即通过 SSH 的几台计算机和一个硬盘。

我注意到的一件事是 SSH 更新令人难以置信快速地与硬盘驱动器同步相比,可能是因为rsync(或在引擎盖下运行的任何内容)仅移动更改的内容。除此之外,我可以一次运行多个 SSH 复制操作,并且复制到本地 USB 硬盘驱动器的操作会被抛在脑后,因为它一次只复制一个文件,并且每次都会覆盖整个文件。

当更改 ID3v1 标签的编码(用于兼容性测试)时,我的整个约 5000 个文件音乐库更改需要备份到其他计算机和硬盘驱动器。

我有什么办法可以:

  1. 增加同时复制的数量;和
  2. 只复制文件中已更改的部分?

这是我的 Unison 个人资料:

# Unison preferences
batch = false
confirmbigdel = true
copymax = 10
logfile = .unison/unison-music.log
maxthreads = 30
perms = 0
sortbysize = true

root = /home/me/Music
root = /media/truecrypt1/media/music

答案1

copythreshold = 1024

然后使用一致方式更改大于 1Mb 的文件,rsync而不是完全重新传输。

答案2

确保该fastcheck选项已打开(如果双方都是unix系统,则应该是默认的)。默认情况下,Unison 会查看每一侧每个文件的全部内容。这样更安全:它保证Unison运行后,两边的内容是相同的。如果文件的修改时间可能因虚假原因而更改,速度也会更快。对于大文件,这可能会很慢。使用该fastcheck选项,如果文件的大小和修改未更改,Unison 将认为文件未更改(rsync 默认情况下会进行此优化)。

答案3

查看man rsync并搜索该whole file选项。--no-whole-file可能就是您正在寻找的。我想一致也有类似的选择。

相关内容