
Я использую Unison для синхронизации своей музыкальной коллекции с несколькими разными источниками, а именно с парой компьютеров по SSH и жестким диском.
Я заметил, что обновления SSH невероятнобыстрыйпо сравнению с синхронизацией жесткого диска, возможно, потому что rsync
(или что там работает под капотом) перемещает только то, что изменилось. Добавьте к этому тот факт, что я могу запустить несколько действий копирования SSH одновременно, и копирование на локальный жесткий диск USB остается в пыли, поскольку оно копирует только один файл за раз и каждый раз перезаписывает весь файл.
При изменении кодировки тегов ID3v1 (для тестов совместимости) все изменения моей музыкальной библиотеки, насчитывающей около 5000 файлов, необходимо скопировать на другие компьютеры и жесткий диск.
Есть ли у меня возможность:
- увеличить количество одновременных копий; и
- копировать только те части файлов, которые были изменены?
Вот мой профиль в 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
Затем Unison изменяет файлы размером более 1 Мб на месте, rsync
не передавая их полностью заново.
решение2
Убедитесь, что fastcheck
опция включена (она должна быть включена по умолчанию, если обе стороны — системы Unix). По умолчанию Unison просматривает все содержимое каждого файла на каждой стороне. Это безопаснее: это гарантирует, что после запуска Unison содержимое будет одинаковым на обеих сторонах. Это также быстрее, если время изменения файла может измениться по ложным причинам. Для больших файлов это может быть медленно. С этой fastcheck
опцией Unison будет считать файл неизмененным, если его размер и модификация не изменились (rsync выполняет эту оптимизацию по умолчанию).
решение3
Посмотрите man rsync
и найдите whole file
опцию. --no-whole-file
возможно, это то, что вы ищете. Я думаю, у Unison есть похожая опция.