Мне нужно настроить синхронизацию между моими компьютерами с NAS в локальной сети. Однако настройка довольно сложна, поэтому я предполагаю, что нет готового продукта, который бы делал то, что мне нужно.
Подробности:
Устройства, которые я использую:
- Настольный ПК, двойная загрузка Windows 10 / Arch Linux
- Ноутбук (Arch Linux)
- NAS (самостоятельная сборка, на нем работает FreeNAS)
До сих пор я использовал rsync
для резервного копирования на NAS (в одностороннем порядке моя установка с двойной загрузкой использует одинаковое хранилище для обеих ОС).
Проблема в том, что я хотел бы синхронизировать ноутбук. Поэтому мне нужно сделать какую-то двустороннюю синхронизацию.
Проблемы, которые возникают здесь:
Я часто сохраняю файлы всего за несколько секунд до выключения, поэтому мне нужно отслеживать изменения файлов, а не периодически запускать инструмент синхронизации
- Я не могу синхронизировать свой ноутбук за пределами локальной сети (и в локальной сети я чаще всего использую настольный ПК); Локальная (обновленная) версия может быть довольно устаревшей и приводить к некоторым конфликтам.
Я хочу использовать только локальную сеть (вероятно, существующую сетевую папку NAS), а не ownCloud или что-то подобное, потому что у нас довольно ограниченная полоса пропускания, где я живу, и у меня есть довольно большие файлы для синхронизации.
Мои идеи
Я нашел этот вопрос: как мне настроить rsync и любые другие сценарии, чтобы имитировать минимальную жизнеспособную копию DropBox? и изучил решение с помощью lsyncd (Live Syncing Daemon), который синхронизирует локальные каталоги с удаленными целями. Это может решить проблему № 1, но я все еще должен быть готов к конфликтам. Кроме того, я не смог найти никаких документов о lsyncd для Windows, поэтому я предполагаю, что он там не будет работать.
Я также рассмотрел возможность включения Unison в решение; Кажется, он выполняет двустороннюю синхронизацию. Может быть, я мог бы использовать его вместе с lsyncd.
Я не уверен насчет разрешения конфликтов. Я обнаружил подсказку, что с -batch
конфликты просто пропускаются. Но как мне обрабатывать конфликтующие файлы в долгосрочной перспективе (в конце концов, я хочу их синхронизировать)?
Итак, мой вопрос, как я могу это сделать?