LINUX.ORG.RU

Syncthing 0.11 — открытая кроссплатформенная программа для синхронизации и резервного копирования

 , ,


6

3

Состоялся очередной выпуск Syncthing — открытой кроссплатформенной программы для синхронизации и резервного копирования, написанной на языке Go. По своим возможностям она аналогична BitTorrent Synс: заявлена синхронизация файлов между узлами в P2P-сети без участия сервера. Для этого используется собственный открытый протокол BEP («Block Exchange Protocol»).

Возможности программы:

  • Синхронизация папок, файлов, времени изменения, прав доступа, символических ссылок.
  • Поддержка синхронизации на уровне блоков. При малом изменении в большом файле будет синхронизироваться лишь изменившаяся часть. При переименовании синхронизируются лишь изменившиеся метаданные.
  • Возможность явно указать, каким узлам будет доступна синхронизируемая директория.
  • Опция «master-slave», благодаря которой другие узлы будут лишь синхронизироваться с данной директорией, но не смогут изменять её содержимое.
  • Управление через отзывчивый веб-интерфейс, консольный клиент и графическую оболочку Syncthing-GTK.
  • Кроссплатформенность. Поддерживаются операционные системы Linux, Mac OS X, Windows, Android, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD и Solaris.
  • Одинаково хорошая работа в пределах LAN и через Интернет.
  • Безопасность и приватность. Данные хранятся на клиентских машинах, не требуется взаимодействие со сторонним сервером. Поддерживается TLS.
  • Открытый исходный код приложения (лицензия MPL) и открытый протокол.

Изменения в версии 0.11:

  • Реализован механизм разрешения конфликтов при одновременном изменении файла с нескольких устройств. Конфликтующая более старая копия теперь автоматически переименовывается в «имяфайла.sync-conflict-YYYMMDD-HHMMSS.расширение»
  • Графический интерфейс теперь потребляет меньше ресурсов процессора
  • Сборщик мусора меньше нагружает процессор при работе с большими файлами. Ускорена синхронизация таких файлов.
  • Изменился формат базы данных (для ускорения синхронизации при наличии множества мелких файлов). Syncthing 0.11 несовместима с более ранними версиями.
  • Улучшен интерфейс программы. В веб-интерфейс добавлен выбор языка и отображение времени непрерывной работы узла.
  • В Windows-версии максимальное количество символов в пути и имени файла увеличено с 255 до 32767.

Доступны готовые сборки, скриншоты, руководство по быстрому запуску и прочая документация.

>>> Подробности

anonymous

Проверено: fallout4all ()

Пользуюсь с версии 0.9 для домашней синхронизации некоторых директорий между домашним ноутбуком, Cubietruck и смартфоном. Полет нормальный.

milton14 ()

синхронизация - да, но не резервное копирование

Вот тут пишут https://github.com/syncthing/syncthing/wiki/FAQ#is-syncthing-my-ideal-backup-... что советуют другие программы для резервного копирования. Огорчает что большинство подобных утилит не умеет с томами работать что VSS под Windows, что с ФС под *nix что умеют это делать. Есть подозрение, что под оффтопиком vsshadow + rsync всё ещё хорошая комбинация.

mlt ()

Syncthing божественнен. Но новость отчасти 4.2

синхронизация... символических ссылок.

Они игнорируются

Опция «master-slave», благодаря которой другие узлы будут лишь синхронизироваться с данной директорией, но не смогут изменять её содержимое.

Скорее опция master-хз. Сами разработчики не до конца понимают зачем она нужна в текущем ее виде

управление через.. консольный клиент

Вот этот чтоли? Смешно

Одинаково хорошая работа... через Интернет

Если озадачишься пробросом портов к каждой машине с syncthing. Ну или если ты отчаянный парень с открытым upnp.

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от milton14

Пользуюсь с версии 0.9... Полет нормальный.

+1, пользуюсь с версии 0.10, задачу синхронизации десктопа, ноута и мобилки решает на 100%, больше никаких проводов и ручного копирования фоток, книжек и документов)

haku ★★★★★ ()

Интересный проект. Нужно будет поиграться с ним. Может, в хозяйстве пригодится.

lucentcode ★★★★★ ()

Внезапно годная программа. Версию 0.9 использую для синхронизации планшета, ноута и десктопа, если не мудрить с симлинками, как я люблю, то полёт вполне ровный. master-slave: если пишешь в slave-директорию, то при синхронизации данные трутся. Поэтому надо ручками себе ограничивать запись в такую директорию, а программе - разрешить. Но если что, права доступа тоже синхронизируются :)

Через LAN не завелось, но тут могу быть криворуким именно я.

Mihahail ()
Ответ на: комментарий от Mihahail

Чет я противоречиво написал. :) То-ли годная, то ли багованная.

В целом: багованная слегка, но годная. Пользуюсь, менять не собираюсь несмотря на указанные недостатки.

Mihahail ()

Реализован механизм разрешения конфликтов при одновременном изменении файла с нескольких устройств

джва, ДЖВА ГОДА!

t184256 ★★★★★ ()
Ответ на: комментарий от makoven

Кто не master для этой директории, тот, внезапно, slave. Только почитай про это подробнее перед использованием.

t184256 ★★★★★ ()
Ответ на: комментарий от makoven

суперкоротко про то, что master просто не принимает чужих изменений, пространно о том, как и хочется сделать гибко, понятно и правильно. сейчас master можно по ошибке принять за подобие односторонней синхронизации с единственным хостом. можно вообще их несколько выставить и совсем хрень получится. ждем правильного решения.

t184256 ★★★★★ ()
Ответ на: комментарий от Mihahail

если не мудрить с симлинками, как я люблю...

А попробуй mount --bind, вместо симлинков, может получится.

einhander ★★★★★ ()

Данное поделие не умеет в inotify (хотя вроде как есть прикостыливающий его патч).

m0rph ★★★★★ ()

Приложение просто прелесть. Синхронизирую рабочий комп и ноут. Прочие плюшки: настроил файл игноров - теперь TeX макеты статей без «мусора» синхронизируются.

anonymous ()

WAT?

Состоялся очередной выпуск Syncthing — открытой кроссплатформенной программы для синхронизации и резервного копирования, написанной на языке Go.

Автор идиот. Ну какое резервное копирование? Испоганишь что то на одном устройстве, оно синканется с остальными и хана.

shad0w ()

Как то странно видеть софт, которому после каждого изменения в настройках требуется перезапуск, причем изменения эти невеликие, папку добавил, перезапуск. Но программа отличная, буду наверное пользоваться.

i3draven ★★ ()
Ответ на: комментарий от i3draven

Вообще, после настройки, хорошая штука. Только в репах syncthing-gtк для одной версии, а на ppa лежит другая, так что вебмордой рулить приходится.

В софтине явно не хватает возможности отослать кому то ссылку на файл или папку что бы этот кто то мог зайти на один из компов (там ведь есть анонсный сервер, пусть он адреса выдает например примерно как в mozille сделали в hello) и скачать разрешенное по ссылке через вебморду. Тогда бы я дропбокс и мега снес совсем и навсегда.

i3draven ★★ ()
Последнее исправление: i3draven (всего исправлений: 2)
Ответ на: комментарий от gentoo_root

А через что тогда оно определяет измененя файлов?

Как ни странно, через тупой поллинг, раз в N секунд (по умлочанию раз в минуту кажется).

m0rph ★★★★★ ()

Использую активно несколько месяцев. Но это не прямая замена оригинальному (дооплатному) BTSync. Нельзя просто ключами обмениваться, только через привязку компов. Не поддерживает inotify, только сканирование каталогов, поэтому медленно и тяжело. Клиент под Android — вообще ад, процессор жрёт, батарею сажает...

Фактически у меня годен только для синхронизации рабочих каталогов на десктопах/серверах/контейнерах. Плюс бэкаплю с редким апдейтом фотоколлекцию на 800Гб.

Из бонусов — хорошая версионность. Можно просто по номерам, можно по датам. В этом плане рулит. А то я на BTSync несколько фото и видео из Пицунды потерял. На одной из машин при синхронизации, видимо, место кончилось. Или ещё по какой-то причине файлы обнулились. И так обнулёнными по всем машинам засинхронизировались. Тут — включаешь версионный бэкап и потом всегда можно поднять.

Из минусов — постоянно на той или иной машине обламывается синхронизация. Самое популярное — логи, на сотни мегов забитые чем-то вроде:

20:58:29 INFO: Puller (folder "Our", dir "2015/20150408"): delete: remove /home/balancer/Sync/Our/2015/20150408: directory not empty
...
20:58:33 WARNING: Folder "Our" isn't making progress - check logs for possible root cause. Pausing puller for 1m0s.

Или под виндой:

20:58:29 INFO: Puller (folder "Our", dir "2015/20150408"): delete: remove /home/balancer/Sync/Our/2015/20150408: directory not empty

Ещё бесит постоянно вылезающая проблеме «не поддержваются симлинки». Вот нету, блин, их у меня в репе. Давно уже нет. Специально зачистил. Нет, фигушки, месяцы проходят, синхронизацию под виндой сношу/запускаю — всё равно ругается на симлинки.

В общем, очень, очень капризный и своенравный инструмент. Хотя после известного демарша BTSync, приходится плакать, колоться, но кушать Syncthing, вкуснее он от этого не становится.

...

И, главный серьёзный минус — нельзя синкаться просто обмениваясь ключами. Это сразу ставит крест на широкой области применений, сводя чисто к локальной работе.

KRoN73 ★★★★★ ()
Ответ на: WAT? от shad0w

Ну какое резервное копирование? Испоганишь что то на одном устройстве, оно синканется с остальными и хана.

Там есть версионный бэкап. К тому же можно использовать связку syncthing для передачи данных с боевого сервера на бэкап-сервер, а уже на бэкап-сервере результат бэкапить версионно специальным инструментом и т.п. Не всегда удобно на сервере держать rsync-демон, не всегда он бывает доступен за NAT.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

оригинальному (дооплатному) BTSync
дооплатному

Мой парсер спасовал на этом месте, что сие должно означать?

после известного демарша BTSync

А можно для слоупоков, что там такое они вытворяют?

И, главный серьёзный минус — нельзя синкаться просто обмениваясь ключами.

Это да, не хватает такой возможности.

anonymous ()
Ответ на: комментарий от anonymous

Мой парсер спасовал на этом месте, что сие должно означать?

BTSync сперва был просто отличной, пусть и проприетарной, но фришной синкалкой по ключам. Работала отлично, есть не просила.

Потом они сделали обмен ссылками вместо простых ключей. Слава Богу, что обмен ключами тоже оставался, хотя и нужно было включить в настройках.

Потом они выкатили платную версию, в которой старая работа с ключами поддерживается («1.4»), но новые репы («2.0») с ключами не работают. Создать можно только новую.

И, самое западло, синхронизировать на халяву можно только до 10 репозиториев.

На этом фоне ценность BTSync резко устремилась к нулю.

KRoN73 ★★★★★ ()

Фигня какая-то. Мининовости не показываются в трекере. А как их, вообще, отслеживать? Я только сейчас это обнаружил. Полагаю, много упустил :D

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

О, у меня была хорошая криокамера, значит. Читаю описание нового BTSync на их сайте, и чего-то они там прямо такого странного наворотили. С одной стороны, есть несколько интересных возможностей, но эта платная версия (да ещё и по подписке, если я правильно понимаю?) подталкивает BTSync к статусу «ненужно».

А раньше вроде бы ещё и какие-то разговоры об открытии сорцов ходили. А оно вот оно как теперь.

И давно это всё произошло, кстати?

anonymous ()
Ответ на: комментарий от anonymous

но эта платная версия (да ещё и по подписке, если я правильно понимаю?)

Угу. 2500 руб. на год. Потом — продлевать. И это плата фактически за воздух. Данные-то они не у себя хранят :D

Интересно, на что они рассчитывают?

И давно это всё произошло, кстати?

В начале марта:
http://habrahabr.ru/post/252167/

KRoN73 ★★★★★ ()
Ответ на: комментарий от m0rph

Как ни странно, через тупой поллинг, раз в N секунд (по умлочанию раз в минуту кажется).

Тогда это очень тупо, раз в минуту пересканировать каталог. Я уж подумывал как-то попробовать эту программу, когда прочитал новость о предыдущей версии.

gentoo_root ★★★★★ ()

В Windows-версии максимальное количество символов в пути и имени файла увеличено с 255 до 32767.

А в убунте всё ещё ругается на длинные пути. Это особенности ext4 и ZOL?

Deleted ()
Ответ на: комментарий от gentoo_root

Тогда это очень тупо, раз в минуту пересканировать каталог. Я уж подумывал как-то попробовать эту программу, когда прочитал новость о предыдущей версии.


Насколько я понял дело кончилось вот этим. Разработчик не захотел это реализовывать сам из-за различий на других платформах, но другие уже запилили костыль. Правда я не стал разбираться как его использовать, а перешел на другое поделие - seafile.

m0rph ★★★★★ ()

К вечеру оттестирую ебилд, будет свежачок.

Я джва года ждал замену btsync (особенно после релиза 2.0, где без Pro-абонемента и чихнуть нельзя)!

Корректоры, добавьте тег syncthing, чтобы на него можно было подписаться.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Корректоры, добавьте тег syncthing, чтобы на него можно было подписаться.

btsync, syncthing, синхронизация

/me so slow.

r3lgar ★★★★★ ()
Ответ на: комментарий от kiotoze

Окей.

Пытаюсь синхронизировать на zfs. Там судя по этому сообщению всё получше с лимитами.

Однако, получаю в логах:

Puller (folder "macmini_home", file "Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleiOS8.0.iOSLibrary.docset/Contents/Resources/Tokens/swift/instctr/EKRecurrenceRule/recurrenceWithFrequency(EKRecurrenceFrequency)interval(Int)daysOfTheWeek([AnyObject]!)daysOfTheMonth([AnyObject]!)monthsOfTheYear([AnyObject]!)weeksOfTheYear([AnyObject]!)daysOfTheYear([AnyObject]!)setPositions([AnyObject]!)end(EKRecurrenceEnd!).xml"): 
dst create: open /zpool/backups/macmini_home/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleiOS8.0.iOSLibrary.docset/Contents/Resources/Tokens/swift/instctr/EKRecurrenceRule/.syncthing.recurrenceWithFrequency(EKRecurrenceFrequency)interval(Int)daysOfTheWeek([AnyObject]!)daysOfTheMonth([AnyObject]!)monthsOfTheYear([AnyObject]!)weeksOfTheYear([AnyObject]!)daysOfTheYear([AnyObject]!)setPositions([AnyObject]!)end(EKRecurrenceEnd!).xml: 
file name too long

Путь даже близко не у лимитов, а вот имя файла с добавленным .syncthing. в начале делает его уже 260 байт :(

Как выкручиваться?

Deleted ()
Ответ на: WAT? от shad0w

Re: WAT?

Ну какое резервное копирование? Испоганишь что то на одном устройстве, оно синканется с остальными и хана.

Мсье слышал про версии файлов?

anonymous ()
Ответ на: комментарий от KRoN73

На этом фоне ценность BTSync резко устремилась к нулю.

Ну, вообще, можно использовать одну из бет 2.0. Ту, которая стала последней перед выкатыванием ограничения на 10 реп. Для оффтопика такую нашли, под другие платформы не знаю.

anonymous ()

Это песец какой-то. Ночью обновился сабж и утром мне положил сервер на пересканировании бэкапа фотоколлекции. Что они с ним сделали?? o_O

При чём только убиваешь сожравший 100% io и ушедший в себя процесс, как тут же перезапускается новый и сходу начинает жрать столько же. Пришлось сносить нафиг, вообще, бинарник.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Видимо из-за этого

Изменился формат базы данных

Всё заново пересканирует. Задай ему самые низкие приоритеты с помощью nice и ionice и пускай.

itn ★★★ ()
Ответ на: комментарий от itn

Задай ему самые низкие приоритеты с помощью nice и ionice и пускай

Было nice +10 и ionice -c3 :-/

Ночью запущу снова, как нагрузка упадёт на сервер.

KRoN73 ★★★★★ ()
Ответ на: комментарий от itn

Запустил обновление под виндой, где легко отслеживать работу процессов с файлами. Эти кадры додумались до _параллельного_ сканирования. Работает _несколько десятков_ процессов syncthing.exe (все со своими файлами) и несколько сотен, наверное (пересчитывать влом) производных MsMpEng.exe.

Можно представить, что творится с дисковой системой, когда её одновременно долбят сотни процессов...

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Ну по идее так правильно когда шара не 800гб... Если я не путаю в глубинах /proc или /sys есть инструмент ограничивающий такую чрезмерную активность но я даже после попыток вспомнить и гугления не помню как это делать...

itn ★★★ ()
Ответ на: комментарий от itn

Ну по идее так правильно когда шара не 800гб

Он 13Гб на бездействующей машине в итоге окучивал 35 минут. С тормозами для машины. Из-за высокой параллельности скорость чтения с диска вместо пиковых линейных 40-70Мб/с равнялась 5-9Мб/с. Т.е. в однопоточном (или условно малопоточном) режиме он бы с задачей справился бы раз в 5 быстрее. И без таких тормозов.

Интересно, сколько он на нагруженном сервере будет окучивать 600Гб? :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

В защиту Syncthing могу сказать что синхронизация например 20ГБ с DropBox это миссия почти невыполнимая, у меня на это вообще сутки ушли.

itn ★★★ ()
Ответ на: комментарий от itn

синхронизация например 20ГБ с DropBox это миссия почти невыполнимая

Х.з. Но если BTSync с моими 600Гб работал легко и непринуждённо, фиксируя изменения через inotify в почти реальном времени, а первичная синхронизация, хотя и шла долго (больше суток на узком канале), но без заметных тормозов машины, то на Syncthing полное сканирование сегодня утром просто положило машину, а проверки обновления (пересканирование) стоит раз в час, а подумываю вообще на перевод на раз в сутки.

Всё же, качество реализации вообще несравнимое, увы :-/

KRoN73 ★★★★★ ()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от KRoN73

Ну ты сравнил коммерческий проект над которым работает дофига народу в полный рабочий день которые на минуточку в этом профи как минимум и кучу кода на гитхабе которая появилась не благодаря а вопреки, которая разрабатывается любителями в свободное от работы и прочих дел время.

Я если честно радуюсь что хоть такая альтернатива есть.

И всё таки не всё сразу, всё будет, но не сейчас. Выкатят скоро... Надеюсь..

itn ★★★ ()
3 июля 2015 г.
Ответ на: комментарий от makoven

Они игнорируются

Никак нет, они синхронизируются. Сам удивился.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.