2

Мне нужен способ синхронизации файлов между 3 местами, все из которых могут быть изменены.

Все места в Linux, и инструмент синхронизации должен запускаться из cronjob, а не вручную!

Я попробовал unison , но я не могу заставить его работать с 3 отдельными местами (я пытался настроить с помощью синхронизаций <=> b и b <=> c, но это не работает).

Есть ли инструмент, который мог бы сделать что-то подобное?

7 ответов7

3

Унисон сделает это. Внутри папки Unison, в которой хранятся данные синхронизации (путь к osx:~/Library/Application Support/Unison), создайте два файла .prf.

example1.prf

# Unison preferences file

root =  /Users/XXXX/Desktop/a 

root = /Users/XXXX/Desktop/b

perms = 0

#confirmbigdel = false

example2.prf

# Unison preferences file

root =  /Users/XXXX/Desktop/b 

root = /Users/XXXX/Desktop/c

perms = 0

#confirmbigdel = false

теперь запустите "unison example1" и "unison example2", все папки будут синхронизированы.

Вы можете сделать еще один шаг и обновить все папки, как только файл изменится, если вы соберете unison из последней версии svn. В последней версии svn вы можете использовать флаг «-repeat watch» (например, «unison exampleX -repeat watch») для просмотра папок на наличие изменений, поскольку файл fsmonitor.py находится в том же каталоге bin, из которого вы выполняете Unison из ,

Это также работает через ssh, если одна и та же версия установлена на всех машинах ... Частный дропбокс, в основном. Вероятно, было бы полезно настроить сервер, всегда подключенный к Интернету, чтобы принимать изменения в любое время, все компьютеры будут подключаться к тому, который ищет изменения.

1

Неортодоксальная идея, не могли бы вы просто использовать GIT?

1

NFS или Samba , никаких заданий cron не требуется.

0

Как насчет Subversion, используя бесплатный сервис, такой как projectlocker или cvsdude? Это очень легко масштабируется.

0

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

0

Изменяются ли данные во всех местах все время? В противном случае вы могли бы начать свою работу, выполнив rsync с одного (который вы объявляете мастером) на машину, с которой вы работаете, а затем rsync обратно, когда закончите.

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