2

Я использую Unison для синхронизации некоторых файлов между моим домашним компьютером и рабочим компьютером. Однако два компьютера не могут подключаться друг к другу напрямую через ssh, поэтому я синхронизируюсь через флэш-накопитель USB (отформатированный с помощью ext4 для сохранения разрешений).

У меня проблема в том, что Unison хранит конфигурацию профиля синхронизации локально (в каталоге .unison), а не в самой папке. Это означает, что некоторая информация, такая как пропущенные файлы, должна дублироваться в двух профилях, которые я храню.

Есть ли способ автоматически синхронизировать профиль синхронизации между двумя компьютерами?

2 ответа2

1

Я держу профиль в каталоге для синхронизации. Внутри ~/.unison я поместил символическую ссылку на реальный профиль. Это хорошо сработало для меня. Это также позволяет мне быстро «загрузить» новую машину: просто скопируйте профиль с USB-накопителя на новый компьютер и начните заново.

Есть одна «гоча». Если вы добавите строку игнорирования в профиль (на одном компьютере), который соответствует файлу, который уже существует на USB-накопителе, этот файл будет перенесен с USB-накопителя на другой компьютер при следующей синхронизации Unison, несмотря на линия игнорирования . Причина в том, что профиль планируется перенести, но он не действует (на другом компьютере) до следующей синхронизации. Кроме этого я еще не сталкивался с какими-либо проблемами.

1

Альтернативой, с которой я закончил, является двухэтапная синхронизация. У меня есть унисон-профиль для синхронизации моих унисон-профилей.

#.unison/sneakernet-init.prof

label = Unison profiles

root = /home/hugo/.unison
root = /media/hugo/MYDRIVE/Sync/Unison

path = sneakernet-common        # ignore rules, diff command, etc
path = sneakernet-dotfiles.prf  # profile for my dotfiles
path = sneakernet-hugobox.prf   # profile for my other stuff

Затем я использую скрипт для запуска унисон с каждым профилем по очереди

#syncronize-things.sh
unison-gtk sneakernet-init
unison-gtk sneakernet-dotfiles
unison-gtk sneakernet-hugobox
sync # Flush file system caches

Это решение немного обременительно, потому что мне нужно запускать unison 3 раза вместо одного, но оно имеет то преимущество, что ни один из профилей unison не отвечает за синхронизацию (что приводит к странному поведению, когда вам может понадобиться запустить unison дважды с тот же профиль, чтобы заставить вещи работать)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .