
Я хочу синхронизировать свое личное хранилище документов между разными компьютерами у себя дома. Сегодня эта папка находится в выделенном разделе жесткого диска рабочей станции с двойной загрузкой.
Моя конфигурация следующая:
- Двойная загрузка рабочей станции под управлением Ubuntu 11 и Windows XP (документы просто доступны с использованием выделенного раздела)
- Ноутбук с Ubuntu 12.04 (Сегодня нет доступа к документам)
- Freebox с подключенным к нему внешним жестким диском
Мне хочется иметь возможность синхронизировать эту папку с документами также с ноутбуком и, в дополнение, иметь «резервную копию» на жестком диске, подключенном к Freebox.
Какие инструменты мне следует использовать для этого ( rsync
, unison
, другие?)
решение1
Если вы всегда синхронизируетесь в одном направлении, используйте rsync. Если вы синхронизируетесь в обоих направлениях, используйте unison. Unison поддерживает как Linux, так и Windows; в документации объясняется, как настроить его под Windows (вам также понадобится SSH-клиент).
Для синхронизации между более чем двумя местоположениями выберите одно в качестве главного и синхронизируйте все остальные местоположения с главным. Здесь настройте как рабочую станцию, так и ноутбук для синхронизации с Freebox.
Вам понадобится бинарный файл unison на Freebox. Поскольку он работает под управлением Linux и имеет процессор x86, если у него еще нет unison, вы можете скопировать бинарный файл из любой 32-битной установки Linux.
решение2
Я не думаю, что rsync вам подходит, потому что он не будет автоматически обрабатывать обновления одного и того же документа в нескольких местах. То же самое касается и удаления файлов. Вы можете сделать это вручную, но это обязательно станет проблематичным в какой-то момент.
Я никогда не пользовался Unison, но, похоже, это подходящий инструмент для вашего случая.
Тем не менее, я бы также хотел упомянуть распределенные системы контроля версий, такие как Mercurial, Git, Bazaar и т. д. Они имеют дополнительное преимущество в том, что вы не теряете старые версии своих документов. Однако они лучше всего подходят для работы с текстовыми файлами; двоичные файлы, такие как документы LibreOffice и т. п., потребуют больше работы, когда один и тот же документ изменяется на нескольких машинах.
Обновлять:Если вы хотите иметь настоящую резервную копию на третьей машине, вам следует рассмотреть возможность использования отдельного решения для резервного копирования, поскольку оно сохранит старые файлы. rsync также может это сделать (если вы пропустите эту --delete
опцию), но в какой-то момент это снова станет проблемой: старые файлы заполнят ваши папки с документами, а новые файлы с теми же именами, что и старые, удаленные файлы, перезапишут их.
Для этого можно использовать простую систему резервного копирования, такую как dejadup, duplicity, rsnapshot или rdiff-backup.
решение3
Я использую rsync через ssh. Для резервного копирования можно сделать такой трюк:
http://www.mikerubel.org/computers/rsync_snapshots/
В принципе, у меня настроен rsync с ключами ssh и заданиями cron. Ссылка выше охватывает большую часть (или все) этого.
Я тоже использую duplicity для резервного копирования, но не решаюсь рекомендовать его. Он работает, но он громоздкий.