BitTorrent Sync — наш новый фаворит синхронизации
Сегодня существует масса способов синхронизации файлов между своими компьютерами: Dropbox, SkyDrive, Google Drive, всякие Яндексы-Шмяндексы и прочая-прочая. Имя им — легион. И сравнивать их между собой я не буду. Мы у себя в компании используем в основном Dropbox и SkyDrive, но…
НО! Все эти сервисы хороши для персонального использования, а как только количество пользователей и объем файлов синхронизации начинает расти — наступают проблемы. Мы столкнулись с тем, что на объемах более 20 – 40 GB и количестве пользователей 5 – 10 все эти способы становятся весьма накладными: $100 в год на пользователя в Dropbox, около $1000 в год на всех при покупке SharePoint (Office 365), а обычный SkyDrive не умеет синхронизировать папки, предоставленные другим пользователем! В общем, пришлось искать другое решение, и мы его нашли:
BitTorrent Sync
http://labs.bittorrent.com/experiments/sync.html
Это синхронизация файлов и папок через BitTorrent среди любого количества пользователей. К несомненным плюсам можно сразу же отнести:
- Любое число пользователей, причем, чем их больше, тем лучше и быстрее идет синхронизация.
- Любые, ничем не ограниченные объемы синхронизации
- Синхронизация любых папок в любом месте на компьютере (и не надо плясать с файловыми ссылками или Junction-связями, как в случае с Dropbox)
- Бесплатность решения
Схема синхронизации очень проста: устанавливаем программу, на закладке Shared Folders нажимаем кнопку [Add].
Указываем папку и, если новая папка, нажимаем кнопку [Generate] в строке Secret. Собственно это строка секрета и является идентификатором папки. Если же мы хотим подключится к существующей папке, нужно просто ввести ее секрет, полученный с первой машины. Вот так его можно легко узнать:
Собственно, все! Программа найдет тех пользователей в онлайн, у кого есть эта папка и вытянет у них файлы.
Конечно же, для быстрой и бесперебойной синхронизации в такой схеме должен быть один-два узла, которые в онлайн постоянно. Мы это решили установкой пока одного, но в ближайшем будущем и второго сервера для хранения общих данных. В этом случае синхронизация идет как из пушки — очень быстро и в любое время. Плюс, мы имеет полную резервную копию (копии) файлов.
Запуск BTSync на сервере Windows Server 2008 R2
Правда, для запуска BTSync на сервере нужно сделать одно простое телодвижение. Стандартно программа синхронизации запускается в контексте сеанса пользователя, а на сервере ее хорошо бы запу3стить вне зависимости от пользователя, то есть, службой. Делается это просто:
- Скопиpyйте файлы instsrv.exe и srvany.exe в папку программы, то есть C:Program Files (x86)BitTorrent Sync (эти файлы берутся из Resource Kit compmgmt.cab srvany.exe, instsrv.exe или нагугливаются)
- Откройте командную строку от имени администратора:
- Последовательно введите следующие команды:
cd C:Program Files (x86)BitTorrent Sync
instsrv BTSync «C:Program Files (x86)BitTorrent Syncsrvany.exe»
regedit - В открывшемся редакторе реестра найдите следующий раздел
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesBTSync - Создайте в нем еще один раздел с именем Parameters
- В этом разделе создайте параметр (тип REG_SZ) с именем Application и значением
C:Program Files (x86)BitTorrent SyncBTSync.exe
- Убедитесь, что в приложении на закладке Preferences СНЯТА галочка Start BitTorrent Sync when Windows starts.
- Закройте приложение (выйдете из приложения) BTSync
- Откройте Администрирование –> Службы и найдите там службу BTSync
- Убедитесь, что тип запуска службы стоит Автоматически
- На закладке Вход в систему выберите “С учетной записью” и введите свой логин и пароль на сервере
- Все! Запускаем службу BTSync и убеждаемся, что синхронизация работает.
Когда нужно будет изменить настройки BTSync, нужно остановить службу и запустить приложение. Далее меняем настройки, останавливаем приложение и запускаем службу.
Вот примерно так мы решили задачу синхронизации больших объемов данных между удаленными сотрудниками. Вроде бы решили.
Полезная штуковина. Надо полагать размер одиночного файла тоже без лимита?
Ну да, лимит на размер — только объем дисков.
как вы решили проблему с конфигурацией? как сконфигурировать клиента не имеющего командной строчки и запущенного как служба?
извените, поспешил с комментарием не дочитав до конца. в нашем случае мы не имеем возможности запускать клиента из под пользователя и соответствено не можем сконфигурировать клиента.
Ну так посмотреть, где он хранит конфигурацию и прямо туда писать.
Я бы не спешил рекомендовать клиентом. протокол необкатан и уже найдены серьезные баги. Например, если одна из машин будет в будущим (примерно на 1 час вперед) то btsync начинает сильно колбасить. Они определяют время по timestamp. Его нельзя будет открыть на других машиах и он все время будет откатываться к старой версии. RO клиент при определенных обстоятельствах может получить полный доступ :) Кстати, первый вариант может получится и сам по себе. Есть еще мелкие глюки и баги. Для серьезных документов я пока не рекомендую использовать ButSync.
А не подскажете, где этот ButSync взять? Гугл не помог :-(
http://labs.bittorrent.com/experiments/sync.html
К сожалению данная инструкция по превращению любой программы в службу Windows неприменима к ОС Win 2k3. У меня после попытки запуска службы btsync из оснастки «Службы» появляется диалоговое окно с ошибкой «Служба btsync на «Локальный компьютер» была запущена и затем остановлена. Некоторые службы автоматически останавливаются, если им нечего делать, например, служба журналов и оповещений производительности».
Данная проблема решается с использованием программы nssm. Скачиваете с официального сайта, распаковываете её в любой из путей прописанных в переменной окружения %PATH%. Я поместил её в каталог c:windowssystem32 (она портабельна и не требует установки). Далее запускаете командную строку с правами админа и в неё вводите следующее:
>nssm install btsync
Далее жмакаете по Enter’у и в появившемся диалоговом окне выбираете программу которую нужно «Демонизировать». Поле с опциями можно не заполнять, поле «Sevice name» заполнится автоматически. Далее «Install service» и наслаждаетесь. У меня синхронизация работает как часы. ;)
PS.1 Если данную службу нужно удалить, то в той же командной строке набираете
>nssm remove btsync
PS2. Синхронизация файлов между двумя и более узлами не будет работать если на них будет рассинхронизация во времени более чем в 600 с. (это значение параметра по умолчанию sync_max_time_diff). Если сервера находятся в разных часовых поясах, и такое часто в жизни бывает, то идём в Preferences->Advanced и устанавливаем параметр sync_max_time_diff в нужное нам значение.
PS3. В оснастке «Службы» для данной службы в вкладке «Вход в систему» устанавливаете логин и пароль доменного пользователя в контексте которого данная служба будет работать.
Пользуюсь программой в полный рост и вот, что из этого получилось http://btsyncforum.ru/
Как сделать чтобы на клиентском компьютере всегда была «зеркальная» папка с «сервера». Даже если на «клиентском» компьютере будет удален какой то файл, необходимо чтобы при очередной синхронизации были восстановлены «удаленные» файлы.
Выдать клиентскому компьютеру секрет «read only»
пробовал — не работает =
Что не работает?
При удалении файла на стороне клиента (с учетом что файл остается на сервере) при следующей синхронизации он не скачивается….
Понятно, даже не знаю, что посоветовать…
Решилось всё с помощью установки галочки в св-вах папки «Не сохранять изменения файлов».
Павел, удаленный файл помечается и больше не синхронизируется. Его нужно как то из архива достать и он начнет синхронизироваться. Сейчас на русском есть мануалы.