Синхронизация файлов на базе Syncthing
Стояла задача автоматически синхронизировать данные, хранящиеся (и используемые) на нескольких узлах с разными операционными системами. Поднял
Syncthing 0.14.52 на трех устройствах:
FreeBSD 11.2, Kubuntu 18.10. Windows 7. Без больших проблем, только во FreeBSD Syncthing норовит создать рабочие каталоги в корневой файловой системе (у него не получается за недостатком прав); пришлось в корне создать символические ссылки на рабочие каталоги, лежащие на другом диске.
Начальная синхронизация между FreeBSD и Kubuntu прошла примерно за 2 часа, при объеме данных примерно 40 Гб. Синхронизация между FreeBSD и Windows тормозила, шла не менее 9 часов, пока не догадался проверить пути трассировкой - оказалось, что винда ресолвила сервер FreeBSD по квалифицированному имени, и слала данные по "длинному" маршруту, через сети провайдера, интернет, и снова сети провайдера. Поправил в винде файл
hosts, прописал там локальный адрес сервера, синхронизация завершилась моментально.
Еще были замечены сбои синхронизации при создании в винде (определенной программой) файлов
.lock - Syncthing пытался их перенести на другие системы, и затыкался из-за отказа в доступе. Логично. После завершения работы программы, и, соответственно, удаления файлов
.lock, синхронизация восстановилась. Вообще синхронизация при создании/изменении отдельных файлов проходит моментально.
Теперь хочу попробовать "создание резервных копий" - Syncthing должен хранить в отдельном каталоге предыдущие версии файлов. Поднять эту возможность только на сервере, на рабочих машинах жалко дискового пространства.
Syncthing прост в установке, настройке и использовании, со своей задачей справляется отменно. Рекомендую.
Примечание. Ранее для синхронизации использовал
Unison в полуручном режиме, по сравнению с Syncthing он оказался гораздо менее удобен, в том числе, что не работает в реальном масштабе времени, запускать его приходилось или руками, или по крону.