Antimatrix
BTSync Подробное руководство пользователя

Существующие BTSync коллекции

English version

Английская версия содержит довольно много информации о разработке программы синхронизации с открытыми источниками и основных ключевых моментах разработки.

See also:

BTSync User Guide

Авторы: ваш покорный слуга, RomanZ (BTSync поддержка), tuxpoldo (Продвинутый пользователь), и другие из команды BTSync. Здесь также содержится некоторая выбранная информация из форумов BTSync и из сети, и в этом случае мы стараемся всегда предоставлять ссылки на источник.

Примечание: Эти инструкции также можно загрузить с помощью программы BTSync.

См: Как получить данное руководство с помощью BTSync?

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

Для этого, необходимо создать новую папку для чата (сообщений) в BTSync и ввести следующий ключ ("секрет"):

AR333HZMSCBUQ3XVO3SIAVZAXEXZTAL5Y

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

Содержание

Проблемы и решения
Установка и конфигурация

Вопросы не связанные с O/S

Linux

Принципы работы

Принимайте участие, вместо того чтобы сидеть на заднице

Потому как время такое настало

Сегодня, каждое ваше действие или бездействие, каждое ваше слово или дело считается как никогда доселе и вы это увидите своими собственными глазами, ежели все еще не видите.

Во первых, против вашей родины ополчился весь мир, "под чутким руководством" тех, что заявляет: "Наш бог - Люцифер". И это буквальная цитата.

Примите участие, вместо того чтобы сидеть на заднице, копя свою творческую энергию и ожидая некоего «Мессию», чтобы он пришел и "спас" вас от того ада в котором вы живете, осознаете вы это, или нет. Если вы только способны брать, но ничего не давать, то вы никогда не получите достаточно, чтобы, вас наконец, удовлетворить. Потому что в этом случае вы просто тратите свою жизнь в бесконечных поворотах "колеса кармы", как это называется, или "очень быстро крутите ваши колеса, приближаясь никуда".

Независимо от того, кто вы есть, у вас определенно есть нечто, чтобы внести свой вклад. Потому как это есть Закон. Закон самой Жизни! Все, что вам нужно сделать, это посмотреть вовнутрь себя и обратить внимание на то, что вас "врубает", на то, что привлекает вас, то, что возбуждает в вас желание быть. Ведь зачем вы есть? - "Просто так"? Чтобы "выжить"? - А "выжить" для чего?

И тогда вы просто дайте все, что вас "врубает", что вам интересно, не беспокоясь об осуждениях и отрицаниях других, которые сделаны, в первую очередь, из-за их слепоты и самоотрицания. В один прекрасный день Вы это увидите. Это просто вопрос времени, когда это произойдет, по крайней мере, если вы искренни и честны перед самим собой.

Если все те из вас, кто действительно понимают и знают что-то, просто добавят то, что они знают к настоящему руководству и убедятся в том, чтобы добавить новый раздел / тему в оглавлении, можете ли вы себе представить, насколько вы поможете всевозможным людям, борющимися "там" с искусственными проблемами, которые существуют только потому, что они просто не понимают, как все это работает? Потому как, вся эта потерянная энергия может быть перенаправлена на творческие вещи, вместо того чтобы быть просто растрачена на борьбу с бумажными драконами.

А каждая капля вашей энергии сегодня нужна как никогда в истории.

А посему, сделайте так, чтобы это руководство стало по-истинно живым с каждой каплей вашего вклада в него, а вместе с ним, будете и вы. Ибо сие есть Закон, Закон самой Жизни, как выражается в Бесконечном Многомерном Всепроникающем и Вечно-Раскрывающемся Разуме, частичкой которого является каждый из вас, независимо не от чего.

Где взять программу BTSync?

Версию 1.3.109 можно загрузить здесь:

Для всех остальных платформ, вы можете загрузить программу в следующей папке:

BTSync v. 1.3.109
(Для всех поддерживаемых платформ)

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

Download Resilio Sync

Катастрофа в связи с обновлением BTSync 1.4.72

[Примечание: здесь опубликована информация о проблемах с обновлением в сжатом виде. Более полную версию этой информации можно найти в английской версии этого документа.]

1 сентрября 2014, 10:35 UTC.

Совет: Не спешите обновлять BTSync на версию 1.4.7x. Сначала изучите вопросы и почитайте, что говорят на форумах. Вам все станет ясно за минуты, ежели вы почитаете сообщения, связанные с этим обновлением.

Совет: Если ваш узел больше не показывает, что он полностью синхронизирован, самый лучший вариант это удалить ключ и эту папку. Но ТОЛЬКО из самой программы BTSync. Не удаляйте эту папку в вашей файловой системе. Но перед тем как вы удалите папку для этого ключа, скопируйте ключ ("секрет") на вашем текстовом редакторе и также скопируйте точное местонахождение этой папки. Затем, после того как вы ее удалите в BTSync, воссоздайте ее опять. Она будет переиндексирована снова и через несколько минут вы должны увидеть, что она теперь показывает не как она пустая, а отражает реальную картину того, как все должно было быть перед тем как оно перестало работать.

Если вы все равно видите, что папка показывает, что она полностью рассинхронизирована (размер, который необходимо вам загрузить на ваш комп равен размеру папки, как показано в Папках или Моя Синхронизация), ваш следующий вариант это изменить дату всех файлов и подпапок в этой папке таким образом, что их дата находится далеко в прошлом, в 2008 году. К сожалению, это сделать не просто для людей которые не достаточно технически ориентируются.

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

После того как вы удалили эту папку и физически удалили все ее содержимое с диска, воссоздайте эту папку в BTSync опять с тем же ключом и в том же месте. После этого, она начнет перезагружаться с нуля и в конечном итоге все будет восстановлено. Если ваша скорость в сети порядка 10 мегабит, то, при наличии достаточного количества людей на раздаче, вы сможете перезагрузить всю папку в течении минут.

Мы обновили BTSync на версию 1.4.72. Но в этой версии UI был полностью изменен и стал настолько примитивным, неинформативным и неудобным, что вы практически ничего действительно важного не увидите. Это длинная история и вам необходимо решить самим нравится и подходит ли эта версия для вас. Для НАС она совершенно неприемлема. Это как шутка для идиотов или насмешка и надругательство над всем рациональным. Мы это постараемся описать в документации для BTSync.

В результате, мы решили вернуться к версии 1.3.109, которая является, пожалуй, самой более менее работающей версией. И, после того как мы попытались установить 1.3.109, разразился ад. Во первых, она больше вообще не работала и отрубалась как только вы ее запускаете. Чтобы сделать ее опять работающей заняло чуть-ли не день. Но это только начало катастрофы.

Затем, мы обнаружили, что версия 1.4.72 во время установки изменила некоторые ключевые файлы, такие как .SyncArchive, .SyncIgnore, .SyncID и создала новые директории в главной папке, где ваш архив обновлений файлов (.SyncArchive) вообще исчез. Да, в реальности он не полностью исчез, а был перенесен в новую папку .sync. Но как вы можете знать, что такое произойдет если никакой информации не существует?

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

Но, пожалуй, самое омерзительное из всего этого, причем в буквальном смысле слова, оказалось, что все главные папки повреждены и многие файлы просто исчезли. Мы попытались их восстановить и сделать так, чтобы на остальных узлах все было бы синхронизировано, но наши папки на мастер узлах опять начали ломаться. Дело в том, что из-за давней проблемы в BTSync, о которой мы им сказали еще месяцы назад, но которую они не починили и даже отказались на нее смотреть, что странно само по себе, R/O узлы, которые по идее предназначены только для чтения, начали обновлять R/W узлы, что не должно происходить независимо не от чего, ни при каких условиях. Таким образом, R/O узлы начали изменять все наши починки обратно и ломать их опять. Иными словами, мы пытаемся починить нечто, но через секунды оно опять поломано. И т.д. и т.п.

В результате, мы боремся и пытаемся восстановить систему уже несколько дней, и пока не все еще работает как должно. Некоторые узлы теперь начали опять загружать файлы, которые были удалены и перенесены в их архивную папку. Но эти файлы у них есть. Поэтому они опять перезагружают огромные объемы информации, что есть маразм, причем холодный. Если бы они знали как все работает, они бы просто передвинули бы содержимое их архивной папки на ее оригинальное место "и все дела".

На 12 сент. 2014 уже прошло более двух недель после того, как мы попытались обновить BTSync. До сих пор главные папки не показывают правильное состояние загрузки на других узлах и те смотрятся как будто они вообще пустые и ничего на них не загружено, а в условиях публичных папок, когда мы вообще ничего не знаем об остальных узлах, это просто трагично. Они возможно думают, что программа вообще не работает. Несколько из этих узлов просто исчезли и более не посещают главные папки и мы даже не можем им ничего подсказать потому как такого механизма нет в BTSync. В нашей ситуации это просто катастрофа.

Вот небольшой список некоторых вопросов и проблем с обновлением 1.4.7х.

  1. Базы данных для папок синхронизации несовместимы с предыдущими версиями BTSync. Как только вы сделаете обновление, вы более не сможете вернуться к предыдущей версии и восстановить состояние синхронизации папок если вам это обновление не понравится. Поэтому, если вы все же решите попробовать сделать обновление, сохраните все в папке C:\Users\your_accont_name\AppData\Roaming\BitTorrent Sync (для Windows версии) в другом месте. Иначе вам придется удалить все ваши папки синхронизации а затем добавить их опять, после чего произойдет переиндексация всех папок и вы начнете синхронизацию с нуля.
  2. Существует проблема совместимости 1.4.72 с некоторыми предыдущими версиями (не помню, какими именно). Это означает, что если у вас есть некоторые узлы со старыми версиями BTSync то они более не будут синхронизироваться. Этот вопрос является роковым в условиях публичного распространения информации через BTSync, где у вас нет доступа к каждому узлу непосредственно и вы даже не сможете подсказать пользователям, как решить проблему. Их узел просто не будет более синхронизироваться, и они не будут знать почему.
  3. Существует проблема совместимости с Windows XP/Vista/Windows Server 2003.
  4. До версии до 1.3.109 вашей главной рабочей вкладкой на GUI будет Устройства (Devices), где вы можете видеть все свои папки синхронизации и всех пользователей для каждой из них одновременно. Это самый удобный способ работы с программой. Начиная 1.4.72 вам придется водить мышкой, выбирать некоторые почти невидимые точки справа, а затем нажимать на некоторой папке, чтобы видеть всех пользователей на этой папке и даже тогда вы не сможете увидеть, что конкретно с ними происходит и какие конкретные файлы перекачиваются в данный момент.

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

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

    Более того, размеры некоторых диалоговых окошек вы вообще не сможете изменить. Это из оперы "шумел камыш - деревня гнулась"!
  9. Закладки окна о статусе передачи файлов вообще не существует. Один этот факт, сам по себе, является почти катастрофой. Поскольку, когда происходит перекачка файлов, а их может быть несколько в то же время, причем с несколькими узлами одновременно, в предыдущих версиях вы могли увидеть, какие конкретные файлы перекачиваются, и каким пользователям, что, вероятно, является самым простым способом оценить прогресс вещей, особенно во времена повышенной активности. Начиная с 1.4.72, вы практически слепы и не можете видеть что передается и кому и увидеть прогресс того, что происходит в данный момент. Как это назвать? - Просто маразм или уже уровень "дурдома"?
  10. Диалоги являются модальными, что означает, что как только он открыт, вы не сможете делать ничего другого с программой, пока вы его не закроете. Кроме того, почти все диалоги перекрывают почти весь экран и то, что находится под ними вы не можете увидеть.

    С точки зрения компетентного дизайна, модальные диалоги вообще являются "запрещенным приемом" в подавляющем большинстве случаев, за редкими исключениями. У опытных программистов, это является признаком "дурного тона", если не чистого дебилизма или некомпетентности. В хорошо разработанной программе вы можете открывать несколько диалогов даже одновременно, как, например в uTorrent, изменять их размер и положение на экране и переключаться с одного на другой или на главное окно не закрывая ни одного из них, чтобы, например, копировать информацию между диалогами через буфер обмена.
  11. В диалогах нет кнопок OK и Отмена, а это значит, что значения и параметры и настройки, которые были изменены, влияют сразу, по мере того как вы их вводите. Так что, если вы допустили ошибку и закрыли окно диалога, то в нем останутся не те значения, которые вы бы хотели, в случае если вы сделали какую либо ошибку или решили переключиться на другое окно, чтобы скопировать информацию в буфер обмена, а затем скопировать ее обратно в диалог, потому что вы не можете отменить того, что вы изменили, включая, возможно, некоторые неправильные значения, которые вы ввели по ошибке. Ваши старые данные просто утеряны. А это, уважаемые, уже "чистый дурдом".

    Практически в любой более менее профессиональной программе все диалоги дают возможность отменить изменения, которые вы сделали. Представьте, на минуточку, что произойдет если вы, например, хотите ввести IP адрес или пароль или какую либо важную информацию и, по мере того как вы вводили новое значение, вы заметили, что вы скопировали неправильную информацию, а старую информацию либо вообще не раскопать, либо ее просто больше нигде нет. Что делать в таких случаях?
  12. Размер диалогов не может быть изменен. Они просто сидят там в фиксированном месте и с фиксированным размером, которые вы не можете изменить, как манекены, и вы не можете даже их переместить на экране, если вам необходимо посмотреть на другие вещи пока они открыты. А сие просто уровень плачевного.
  13. Контраст текста между активными и неактивными элементами слишком низок, и делает их практически неотличимыми. Для людей с плохим зрением или с плохими условиями освещения экрана вы не увидите никакой разницы между активными и неактивными элементами.
  14. В общем плане, вам необходимо слишком много двигать мышкой и нажимать на кнопку, чтобы увидеть нечто действительно полезное, и даже в этом случае, вы все равно не можете видеть одно полезное окно на экране, которое в значительной степени дает вам полную картину всего, что происходит одновременно. Вы должны постоянно водить мышкой по экрану, нажимать на некоторые вещи, которые даже не достаточно легко заметны, и открывать еще один диалог, который не обязательно расскажет вам много действительно существенного. Опять же, плачевно - будет, вероятно, лучшим описанием такого примитивного интерфейса. Это, безусловно, худший GUI дизайн из всех, с которым этому писателю приходилось иметь дело в любой программе, даже любительского уровня.
  15. Существует возможность того, что обновление на версии 1.4.7х, кроме изменения в некоторых файлах и в базах данных также изменяют права доступа к папкам и подпапкам или делают некоторые изменения в файлах папок из-за которых другие узлы, после обновления, более не показывают правильный статус синхронизации.

    В настоящее время мы не знаем точно, что конкретно произошло после обновления, но сам факт того, что почти все узлы почти во всех папках синхронизации более не показывают правильный статус синхронизации говорит о том, что произошло нечто, что повлияло на другие узлы и, возможно, было отослано на эти узлы и именно поэтому они более не показывают правильный статус. Иначе, по каким возможным причинам те узлы которые работали нормально ДО обновления, более не работают как положено?

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

BTSync 1.4.7х использует совершенно другой графический интерфейс и "под капотом" работает под IE (Internet Explorer) и пользователи даже, возможно, и не подозревают, что то, что они видят на экране - это IE, а не сам BTSync. Но дело в том, что для некоторых пользователей это дело принципа НЕ запускать ничего от Microsoft за пределами самой O/S. Многие пользователи вообще никогда не запускают IE и даже его удалили, чтобы его и близко не было. О IE в сети существуют чуть-ли не горы жалоб и предостережений.

Мы спросили на BTSync форумах: а ПОЧЕМУ пользователей заставляют использовать некоторые внешние программы от третьих сторон? - Никакого ответа, за исключением насмешек или оскорблений и даже обвинений мы не получили. А ведь людей ПРИНУЖДАЮТ использовать IE и у них нет никакого выбора. А это уже попахивает судебными исками.

В судах ЕС рассматривался иск против Microsoft, которые автоматически устанавливали IE вместе с Windows ОС, и, таким образом, склоняли мнение людей в пользу работы с IE вместо установки некоторых независимых браузеров. Microsoft проиграл тот иск. Но с BTSync, мы не только имеем дело с тем же точно вопросом, но даже и более того, пользователей заставляют использовать IE и, таким образом, посылают им сообщение: "привыкайте к новым реалиям". И у них даже нет выбора, который есть даже в случае с Microsoft ОС. Как такое назвать?

Прежде всего, даже не ясно, каковыми являются риски для вашей безопасности и конфиденциальности, когда вы работаете с программами, которые автоматически запускают IE "под капотом". Зачем вам нужно иметь еще одну проблему под вопросом с такими программами, как BTSync, где у вас уже есть более чем достаточно вопросов связанных с безопасностью и конфиденциальностью, особенно в свете утверждений некоторых пользователей, которые заявили, что BTSync работает или сотрудничает с АНБ и все их рассказы о "шифровании" и обещания "повышенной безопасности" являются такой же фальшивкой, как и трех-долларовая купюра, хотя бы потому, что исходный код программы является закрытым? Например, почему это на форумах BTSync тема связанная с обсуждением сотрудничества с АНБ была просто удалена, хотя она была довольно популярной и читаемой?

Я испытал нечто, что заставило меня поверить в то, что Bittorrent действительно работает с АНБ.

И почему это вы должны запускать огромные "bloatware" программы веб-браузера для того, чтобы просто использовать BTSync? Какое отношение имеет IE к BTSync и в чем заключается суть "сообщения", которое BT пытается вам этим послать? - Вы не можете существовать без Microsoft? Куда бы вы не посмотрели, везде сидит Microsoft с задней дверью в АНБ? А зачем ВАМ это надо? ЧТО это решает или улучшает для ВАС, а не для BT, Microsoft или АНБ?

Только загляните в BTSync форумы на тему обновлений и вы увидите многих, кто поднял те же самые вопросы, которые мы указали выше. И, учитывая то, что BTSync "помощники" рутинно удаляют сообщения, которые не сходятся с мнением "партии", то может оказаться, что число удаленных ими сообщений в РАЗЫ превышает то, что осталось после всех "чисток".

Как получить данное руководство с помощью BTSync?

Примечание: Данное руководство также доступно через следующие "секреты" (ключи) для программы btsync:

BUTDXDOOUA6IVT73U224QZWSFQSLEOF43
(Версия только для чтения, если вы заинтересованы только в чтении, но не его редакции).

Примечание: Если вы измените вашу локальную копию R/O версии, вы больше не будете получать обновления этого документа. Но, если вы затем захотите продолжать получать его снова, то в Настройках папки (Folder Preferences) -> вкладка Продвинутые (Advanced) включите флажок "Восстановить измененные файлы в оригинальной версии" (Restore modified files to original version). Это должно восстановить первоначальный статус синхронизации всех файлов в базе данных для этого ключа и повторно загрузить все обновленные файлы на ваш R/O узел.

Заметка: Линукс версия BTSync 1.3.105, из-за ошибки в программе, не имеет функцию по восстановлению файлов. В этом случае, вы можете просто удалить всю папку из из списков папок в BTSync, а затем добавить ее опять с тем же ключом и в той же директории.

Перед удалением папки из BTSync не забудьте сначала скопировать ключ ("секрет") и точную директорию этой папки в вашем текстовом редакторе.

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

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

Контакты: Где можно получить помощь?

Если у вас возникнут какие либо проблемы пошлите сообщение по электронной почте сюда: preciseinfo [@] mail [.] ru.

Возможности программы BTSync по сравнению с торрентами

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

Преимущества:

Недостатки:

Существующие BTSync коллекции на Русском

Заметка: вы можете создавать свои собственные коллекции и если они представляют собой ценную информацию вы можете представить их для публикации в коллекции AntiMatrix.

Существующие BTSync коллекции, на русском и на английском языках можно найти здесь:

Existing BTSync collections (English / Русский)
(Откроется в новой закладке вашего браузера)

Useful links

Get BitTorrent Sync Beta
http://www.getsync.com/

BitTorrent User Guide
http://btsync.s3-website-us-east-1.amazonaws.com/BitTorrentSyncUserGuide.pdf

BitTorrent Frequently Asked Questions
http://www.bittorrent.com/help/faq/sync

Файлы не загружаются или не синхронизируются

Есть несколько причин, почему btsync не начинает загрузку файлов после создания новой папки в btsync. Как правило, основными причинами являются следующие:

Настоятельно рекомендуется создать папку (каталог) через программу btsync, когда вы создаете новую папку нажав на кнопку "Добавить папку синхронизации" (Add a Sync Folder) и вводите секретное слово для этой папки. Потому что, если btsync имеет проблемы с созданием этой папки (права доступа к файлам не позволяют ее создать в той директории, в которой вы пытаетесь ее создать), то он выдаст вам сообщение об ошибке, и вы будете иметь возможность исправить разрешения доступа и повторить процесс. Кроме того, btsync создаст папку с правильными правами доступа и владения к файлам, чтобы позволить ему сохранять файлы в этой папке.

Если вы вручную создали папку, куда вы хотите скачать файлы, ввели ключ (секрет) и выбрали эту папку, но (некоторые) файлы почему-то не загружаются, то вы должны убедиться в том, что папка, которую вы создали, доступна для чтения и записи для btsync и пользователя, который запускает программу BTSync (btsync.exe на Windows Task Manager -> Процессы).

В проводнике Windows, нажмите правую кнопку мышки на этой папке и в Свойства (Properties) -> Безопасность (Security), убедитесь в том, что ваша учетная запись пользователя имеет разрешения писать в эту папку.

То же самое применимо, если вы работаете с Linux. Эта папка должна принадлежать аккаунту btsync и группа btsync должна иметь права записи в ней. Лучше всего создать папку через BTSync GUI в то время, когда вы изначально создаете эту папку для вашей коллекции в btsync. Просто скопируйте и вставьте имя папки с Linux, введите секретное слово (ключ) и нажмите кнопку Создать папку. Если btsync не может создать эту папку, из-за разрешений, он выдаст вам сообщение об ошибке в создании папки. В этом случае, необходимо изменить разрешения и хозяина папки, изменить ее группу на btsync и дать разрешение на запись для группы btsync. Кроме того, установите SGID бит (режим файла 2775 - r/w/x для владельца, и группы).

Если вы создаете эту папку вручную из терминала Linux или из проводника, то убедитесь в том, что владелец и право собственности установлены, как указано выше. Эта папка должна принадлежать группе btsync. В противном случае, btsync не может быть в состоянии начать загрузку, потому что у него нет разрешения на запись.

Если вы также хотите иметь возможность загружать файлы через, например, FTP, то необходимо будет добавить ваш счет пользователя к группе btsync:

sudo usermod -a -G btsync your_user

Подробные инструкции по Linux можно найти здесь:

How To Use BitTorrent Sync
https://www.digitalocean.com/community/articles/how-to-use-bittorrent-sync-to-synchronize-directories-in-ubuntu-12-04

Если у вас возникли проблемы, отправьте письмо сюда: preciseinfo [@] mail [.] ru.

Если время установлено неправильно на вашем компе

Если вы получаете сообщение об ошибке "Синхронизация остановлена разница во времени устройств превышает 600 секунд" (Sync stopped: device time difference is more than 600 seconds), то это значит, что время, установленное на устройствах отличается более чем на 10 мин.

[Примечание: есть несколько сообщений на BTSync форумах о том, что люди, у которых точно время было установлено правильно, все равто получали это сообщение об ошибке. Возможно что-то работает не так в BTSync в настоящее время.]

Время должно быть установлено правильно на вашем компьютере, в том числе временная зона. В противном случае, если оно отличается от времени на других узлах, более чем на 10 минут, btsync не сможет синхронизировать ваш комп, и вы будете проинформированы об этом рядом с названием устройства с сообщением:

Sync stopped: device time time difference more than 600 seconds

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

Скорее всего, ваша временная зона установлена неправильно. Но возможно и само время установлено неправильно, так что ваше местное время с учетом временной зоны не совпадает с Гринвичским эталонным временем (GMT/UTC).

Для того, чтобы определить насколько ваше время отличается от других компьютеров, вам необходимо включить журнальную запись (logging). См: Включение ведения журнала.

Затем откройте журнал в редакторе и найдите строки "Merge: timediff with remote peer" (NNNN is more than allowed 600, aborting). Это вам подскажет на сколько ваше время отличается от времени тех компов, с которыми вы пытаетесь синхронизироваться (+/-). Так что необходимо будет изменить время на вашем компе, чтобы довести этот интервал до 600 секунд максимум.

Например, вы сделали поиск в файле sync.log и там сказано:

"Merge: timediff with remote peer -3909".

Это означает что ВАШЕ время МЕНЬШЕ, чем время на удаленном компе на 1:05:09 [чч:мм:сс]. Таким образом, чтобы синхронизироваться с ним и со всеми остальными, вам будет необходимо УВЕЛИЧИТЬ ваше время на 1 час. Вы можете проигнорировать 5 мин. и 9 сек так как эта разница находится в пределах допустимого предела.

Вот пример журнальной записи для этого случая:

[2014-03-20 22:36:23.542] Got id message from peer Mac mini (00657FB386A75D415E5684E3734368751E47D336) 1.2.91
[2014-03-20 22:36:23.542] Merge: timediff with remote peer -3909 is more than allowed 600, aborting

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

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

На Windows, это можно сделать через Преференции (Preferences) -> Дополнительные (Advanced) -> sync_max_time_diff параметр.

На Линуксе это можно сделать через файл конфигурации. Там тоже есть такой параметр, а даже если нет, вы все равно можете его создать и он должен работать.

Я не могу соединиться с другими устройствами - Я думаю, что это вопрос маршрутизатора/Firewall?

Кроме того, если у вас возникли проблемы с подключением к другим устройствам через VPN (виртуальную частную сеть), попробуйте увеличить размер MTU по крайней мере до 1500.

В заключении, убедитесь, что все ваши устройства используют ту же версию BitTorrent Sync. Например, версия 1.0.x не сможет подключиться к версии 1.1.x, и 1.1.15 не сможет подключиться к 1.1.22, в связи с изменениями, внесенными в протокол между этими версиями.

Синхронизация не завершается - не все мои файлы синхронизируются / количества файлов не совпадают!

Есть ряд причин, почему это может произойти:

  1. Синхронизация не будет синхронизировать файлы, пока они находятся в настоящее время открыты / заблокированы / используются другими приложениями. Закрытие всех открытых файлов в этих приложениях должно затем позволить синхронизации завершить передачу файлов.
  2. Некоторые файлы могут быть исключены из синхронизации (проверьте правила исключений в ваших .SyncIgnore файлах)
  3. Файлы могут иметь неверные временные метки. Если файл имеет неправильное время, например, может казаться, что он был созданы в будущем!, синхронизация может проигнорировать этот файл.
  4. Sync не будет включать в себя количество / размер файлов в папках .SyncArchive, в то время, как ваша операционная система будет - это часто объясняет, почему синхронизации сообщает одно количество файлов / размер, а ваша операционная система сообщает другой набор значений.
  5. Вы изменены или переименованы некоторые файл (применимо только к R/O узлам) [хотя я в этом не уверен - необходимо проверить].

Восстановление первоначального статуса синхронизации некоторых файлов, которые более не синхронизируются

Если вы изменили или удалили некоторые файлы на R/O узле и, в результате, оказывается, что некоторые файлы не обновляются, после того как они изменились на мастер-машине, и вы работаете на Linux, вы можете попробовать сделать следующее:

(Следующие инструкции применимы ТОЛЬКО ДО версии 1.3.105, начиная с которой визуальный интерфейс для Линукс версии был изменен. В новых версиях программы все будет по другому.)

После этой процедуры ваша папка должна показать через некоторое время, что она полностью синхронизирована и все файлы должны стать точно такими, как и на мастер (R/W) узле.

К сожалению, по крайней мере на Линукс версии 1.3.105, визуальный интерфейс WebUI был изменен и опция "восстановить первоначальный статус синхронизации" на ней отсутствует. Мы их оповестили об этой проблеме и они обещали ее починить.

В этом случае, единственное, что вы можете сделать, - это удалить папку из программы BTSync, а затем добавить ее опять в той же директории и с тем же ключом. НО НЕ УДАЛЯЙТЕ САМИ ФАЙЛЫ С ДИСКА. Перед удалением папки из BTSync, сначала скопируйте ключ и точную директорию в ваш текстовой редактор.

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

Вот объяснение от службы поддержки BTSync:

BTSync проходит через все файлы в БД (базе данных), удаляет флаг "не распространять", и запрашивает торрент-файл (список хэшей для частей файлов) от других узлов. Части файлов, которые были изменены загружаются заново.

[...]

... Файлы, которых не существует на RW узлах, не попадают в базу данных. После того, как они появляются на RW соучастниках, RO узел добавляет их в базу данных, и если они отличаются от RW партнеров - они будут помечены как "Изменен, не распространять".

(RomanZ, Sync Support)

Да, такое поведение разработано. Как только хэш файлов изменяется (то произошли некоторые фактические изменения файлов) ИЛИ файл удаляется / перемещается за пределы папки, BTSync отмечает его флагом "аннулирован" в базе данных и более не будет с ним ре-синхронизироваться.

Такое поведение может быть скорректировано. В BTSync, в Свойствах папки есть флажок "Восстановить измененные файлы в оригинальной версии", который отключен по умолчанию. Вы можете его включить и BTSync восстановит файлы, когда они будут изменены / удалены.

(RomanZ, Sync Support)

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

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

Установка BTSync на мобильных устройствах и планшетах

Инструкции по установке BTSync на мобильных устройствах и планшетах описана в документации для пользователя (только на английском языке в настоящий момент).

BitTorrent Sync User Guide
(Откроется в новой закладке вашего браузера.)

Общие заметки

В этом документе упоминаются некоторые инструкции из других источников в сети в которых указываются устаревшие версии BTSync. В основном, адрес наиболее авторитетной версией (на 15 июня 2014) является следующая:

Downloads
http://www.getsync.com/download

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

Также, даже еще более "горячую" версию вы можете найти на Bittorent форумах "Sync General Discussion". Тема, которая содержит ссылку на новейшую версию обычно называется "Latest Desktop Build 1.3.105" (для версии 1.3.105).

Так что в любых инструкциях, которые вы найдете в этом документе, используйте источники выше и пропустите любые инструкции по установке в которых могут даваться другие адреса. Есть также одно исключение - Линукс версия tuxpoldo, которая использует ppa. Хоть она, строго говоря, и не является официальной, но, тем не менее довольно распространена и популярна из-за своего GUI (графического интерфейса).

Настройка свойств папки

Параметры папки в Папки (Folders) -> нажать правую кнопку мыши -> выбор "Показать Предпочтения папок" (Show folder preferences) -> вкладка Свойства (Properties) определяет параметры для папки в плане того, как ваш узел находит другие узлы, подключается к ним, какие трекеры он использует и другие вещи, которые довольно важны в специализированных применениях программы, чтобы управлять вашей безопасностью и настроить другие параметры связанные с вопросами соединения и подключения к другим узлам.

Несмотря на то, что вкладка Свойства (Properties) имеет только несколько параметров, но это представляет вам несколько способов настроить папки с точки зрения соединений и безопасности. Некоторые вопросы и настройки довольно сложны по своим последствиям, чтобы все это описать в нескольких предложениях, но мы все же можем попытаться.

Давайте рассмотрим каждый отдельный параметр, в изложении RomanZ из поддержки BT Sync.


Искать в LAN

BTSync посылает широковещательные пакеты на адрес 239.192.0.0 по UDP порту 3838. Только участники в текущей подсети получат эти пакеты. Соучастники должны запустить BTSync, чтобы их можно было обнаружить.

(RomanZ, Sync Support).


Искать в сети DHT

"Да уж", это крепкий пряник. Протокол DHT является довольно сложным и основывается на принципах, которые могут быть не очень легко понятны для обычного пользователя.

В основном, это связано с вопросами того, как найти другие узлы для некоторой папки. Существуют различные способы это сделать. Один из них, когда вы знаете хотя бы один узел со статическим IP и предопределенным, фиксированным номером порта, и каждый узел из некоторой папки к нему подключается, как это происходит в обычных трекерах. По сути, этот узел становится частным трекером для этой папки.

Например, когда вы нажимаете на "Использовать трекер сервер" (Use tracker server), это говорит BTSync использовать предопределенные и "впаянные" трекеры BT с известными адресами IP:портов. По состоянию на 22 марта 2014, существует 3 BT трекера (для целей избыточности), с которыми будет установлен контакт, чтобы получить список всех соучастников для данной папки (главной папки синхронизация или "ключа").

В этом случае, BTSync гарантированно обеспечит подключение между всеми узлами, которые контактировали трекер BT. Когда некоторый узел связывается с трекером с запросом о соучастниках, трекер возвращает список ВСЕХ соучастников, которых он видел на этой папке. Это означает, что им нет необходимости контактировать или искать друг друга, а вместо этого просто связаться с централизованным трекером для получения списка всех соучастников. Мы поговорим об этом в больших деталях в описании параметра "Использовать трекер сервер".

Другим способом найти список всех узлов для некоторой папки это использовать DHT сеть, которая не нуждается в трекере. Опять же, протокол DHT довольно сложен, чтобы его здесь описать, но основная идея заключается в том, что вы посылаете широковещательные UDP пакеты (всему миру), или, точнее, виртуальной сети DHT, и каждый узел на котором работает BTSync и в котором включен "Искать в сети DHT", становится членом глобальной сети DHT.

Но не все члены сети DHT обязательно имеют список узлов-соучастников для данной папки. Это было бы для них слишком большой нагрузкой и значительно замедлило бы процесс. Лучше бы было распределить нагрузку на всех участников сети DHT. Таким образом, в DHT существует такое понятие как «ближайший адрес», и каждый узел, у которого есть этот «ближайший адрес» будет реагировать на запросы DHT. В конце концов, узел, у которого есть точный список соучастников для заданной папки ответит и отправит список всех узлов, которые либо являются сверстниками на некоторой папке, либо принимали участие на ней в последнее время (время чего истекает в конечном счете).

В этой схеме, вы не зависите от ЦЕНТРАЛИЗОВАННОГО трекера и поэтому, этот трекер не может, возможно, мешать вашей способности обнаружить всех других сверстников, если трекер решит НЕ реагировать и НЕ предоставлять список соучастников определенному узлу, возможно, на выборочной основе, который блокируется, по тем или иным причинам. Если трекер не предоставляет список вашему узлу, то вы не увидите других сверстников. Есть многие аспекты этого процесса, но основная идея состоит в том, что трекер имеет возможность контролировать, какие узлы получают какие списки. Будут ли они на самом деле начинать вмешиваться таким образом или нет - не имеет никакого значения.

Что значит DHT сеть?

Вопрос: Не ясно, применим ли поиск DHT, как к r/w, так и к r/o узлам.

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

2-й вопрос: Что означает сеть DHT? Кто может стать участником этой сети? Только узлы BTSync? Затем, что конкретно происходит, если этот флажок поиска DHT сети включен? Означает ли это, что r/o, или даже r/w узлы будут транслировать некоторые хэши всему миру и все те, кто заинтересован в этой папке и у которых работает btsync и у которых есть эта конкретная папка в их базе данных могут ответить с информацией об их IP/портах в случае, если этот флажок включен на их узле? Другими словами, есть ли необходимость для некоторой папки физически присутствовать на некотором узле, для того, чтобы ответить на запросы DHT, или просто достаточно запустить btsync на их узле, даже если у них нет данной папки?

Ответ: BTSync and uTorrent соучастники. Включение флажка "Использовать сеть DHT" означает, что вы собираетесь искать DHT для хэшей, которые вам нужны, а также сохранять часть DHT таблиц и отвечать другим ищущим соучастникам. Как только вы являетесь частью DHT - вы собираетесь нести некоторую общую DHT нагрузку, независимо от папок, которые у вас есть в наличии. Сам процесс распределения использует довольно сложную логику, вы можете взглянуть на Wiki для деталей.

(RomanZ, Sync Support).

Комментарий: Это означает, что если вы включите DHT, вы будете хранить НЕКОТОРЫЕ списки узлов (таблицы распределения) на вашем собственном узле. Эти списки будут содержать только "ближайшие" узлы для этой папки (ближайшие не значит ближайшие физически. Это означает, ближе всего с точки зрения хэш кода для "имени папки" и не имеет ничего общего с физическим расположением узлов. Протокол DHT шифрует хэши для того, чтобы рандомизировать имена, а затем просто использует численное сравнение для нахождения узлов, которые являются "ближе". Это делается с целью распределения трафика DHT более или менее равномерно по сети DHT.).

Это также является оптимизацией протокола для того, чтобы убедиться, что все участвующие члены DHT сети не хранят весь мир на их узлах, но хранят только те списки, которые по крайней мере, имеют шанс быть "достаточно близкими" с точки зрения хэша [имени папки]. Но все их сохраненные списки не обязательно гарантированы иметь только точные совпадения для некоторой папки. А затем все становится еще более эзотерическим :).

Существует интересный аспект нахождения соучастников. После того, как вам становится известен, по крайней мере, один партнер для некоторой папки, этот партнер также предоставляет вам список всех соучастников, о которых он знает. В итоге получается, что как только вы обнаружите 1-й узел, процесс обнаружения "взрывается" и вы очень быстро находите все остальные узлы для этой папки путем непосредственного контакта с ними, даже без участия сети DHT, и они предоставят Вам списки соучастников, о которых они знают. Таким образом, процесс дальнейшего нахождения узлов после исходного, идет очень быстро и очень эффективно. Каждый узел очень быстро обнаруживает каждый другой узел на этой папке и каждый из них знает всех остальных.

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

Следует отметить, что DHT применим и работает с любым узлом, независимо от того, является ли он r/w или r/o. Каждый узел, у которого включен флажок "Искать в сети DHT" становится соучастником сети, и он может делать запросы к сети DHT, а также становится сервером DHT, который обеспечивает список партнеров другим узлам, у которых также включена эта опция. И он также предоставляет списки из "близких" членов DHT сети, и не только список узлов, участвующих в данной папке.

Таким образом, есть определенные накладные расходы, связанные с DHT, с точки зрения трафика. От 5 до 10% от пропускной способности канала может перейти исключительно на обслуживание запросов DHT. Опять же, протокол DHT является довольно сложным, даже для профессионалов, чтобы понять все хитрые подробности того, как все это работает, но это описание является основной идеей принципов работы.

Таким образом, "мораль": если вы хотите убедиться, что вы будете найдены и найдете максимальное количество соучастников, (в случае, если вы включили трекер BT и он решает вмешаться и не предоставить вам список соучастников), просто включите функцию "Поиск в сети DHT". Это ни к чему плохому не приведет, кроме как к небольшим потерям пропускной способности.

Следует отметить, однако, что если вы включите DHT, с точки зрения безопасности, вы раскрываете себя больше, чем если у вас есть только свои собственные трекеры (См. описание в разделе «Использование предопределенных серверов»). Потому что вы передаете ваши запросы и отправляете ответы всему миру, в основном всем тем, кто принимает участие в сети DHT, в которой может участвовать любой, кто пожелает. Но проблемы, связанные с безопасностью, еще более сложны, если вы посмотрите на них под разными углами. Таким образом, мы здесь не будем об этом говорить.

Но в таком случае, вы сможете обнаружить других соучастников только если по крайней мере еще один узел на этой папке также включил поиск DHT. Другими словами, если вы единственный, в рое, у которого включен DHT, то это не поможет вам обнаружить любые другие узлы, если по крайней мере у одного из них также не включена опция "Использовать трекер сервер".

См также: Принципы обнаружения партнеров


"Использовать предопределенные узлы"

Параметр "Использовать предопределенные узлы (серверы) [Use predefined hosts] в основном то же самое, что и "Использовать трекер сервер" [Use tracker server]. Кроме того вы можете отключить BT трекер по какой-либо причине, такой как безопасность, и, вместо этого, использовать свой собственный трекер для этой папки. Таким образом, с точки зрения функций трекера, он ведет себя как таковой. Но есть разница: настоящим трекерам нет необходимости иметь содержимое всей папки синхронизации, но предопределенным узлам нужно.

В принципе, предопределенные узлы/серверы ничем не отличаются от любого другого узла в рое и они ведут себя почти как трекеры не из-за какого-то специфического поведения, но из-за самого факта того, что любой узел делится списком всех узлов, с которыми он соединен, даже если он ведет себя не полностью так, как трекер с точки зрения обнаружения других узлов. Он просто делится списком узлов о которых он знает, как и любой другой узел. Единственная разница между ним и любым другим узлом является сам факт того, что все или хотя-бы некоторые узлы в рое о нем знают.

Таким образом, разницой между трекером и любым другим узлом является то, что вы знаете его IP/имя и порт, и поэтому любой узел, который о нем знает, может связаться с ним как с "хорошо известным адресом".

Единственное, что необходимо помнить, так это то, что вам нужен по крайней мере один другой узел в этом рое, который также использует эту опцию и у которого также есть по крайней мере один "предопределенный узел" в своем списке. Если вы единственный, у кого есть адрес предопределенного узла и другие узлы не могут «видеть» вас по каким-либо причинам, то ваш сервер становится практически бесполезным. Но, если по крайней мере у одного из них включен "Использовать трекер сервер", то результатом будет обобщенный список узлов в плане общего числа узлов известных в рое всем своим членам.

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

Для создания безопасных частных сетей, у каждого отдельного узла в вашей сети должен быть отключен «Использовать трекер сервер», а «Использовать предопределенный узел» включен. В этом случае, все их предопределенные узлы будут также служить в качестве частных трекеров. Кроме того, необходимо выключить «Искать в сети DHT» [Search DHT network], чтобы минимизировать ваши "следы" в сети, и чтобы вы не были видны другим в сети (если, конечно, BTSync не будет передавать некоторую информацию от ваших узлов даже без вашего ведома. Будут ли они это делать в действительности или нет, не имеет существенного значения с точки зрения безопасности. Но вы можете предотвратить это разными способами, такими как блокировкой всех трекеров BT брандмауэром [firewall] или другими способами, хоть это отдельная тема для обсуждения).

Итак, давайте посмотрим, как это работает. Прежде всего, вот что член команды BTSync имеет об этом сказать:

Предопределенные узлы не имеют никакого отношения к DHT. Это просто узел на котором установлен BTSync, предположительно имеющий такую же папку синхронизации, и который слушает на определенном порте.

Может ли узел, на котором просто запущен btsync, вести себя также как трекер, даже если у него нет содержимого именно этой папки синхронизации? Иными словами, что конкретно является необходимым условием, чтобы некоторый узел стал "предопределенным узлом/сервером"?

Каждый узел немного является трекером: контактируя других партнеров он даст им знать информацию о том, как связаться с другими партнерами, связанными с папкой, которую они синхронизируют в данный момент.

Главной целью создания предопределенных узлов было предложить способ связаться с некоторым соучастником который не контактирует BT трекер (и, следовательно, не может делиться информацией о себе).

(RomanZ, Sync Support).

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

Во-вторых, это означает, что каждый узел в рое имеет список партнеров с которыми он связывается и может делиться этим списком с любым другим узлом в рое, который ему известен. Это и есть смысл выражения «Каждый хозяин немного трекер».

Эффект формирования цепочки

Предположим, что у нас есть частная сеть из узлов, которые заинтересованы в участии на одной и той же папке синхронизации. Как они смогут найти друг друга?

Если ни у одного из них не было бы ни одного предопределенного узла, то они бы не смогли найти друг друга (при условии, что они не используют либо BT трекер либо участвуют в сети DHT).

Скажем, что узел 1 добавляет в свой список IP/имя предопределенного узла 2. Теперь, оба этих узла могут соединиться. Но все другие узлы все еще не смогут их найти. Затем узел 3 добавляет либо узел 1 или узел 2 к своему списку предопределенных узлов, не важно какой из них. Теперь у нас участвуют 3 узла. Узел 4 может добавить любой из этих трех к своему списку предопределенных узлов, не важно какой из них. То же самое с узлом 5.

Это означает, что нет необходимости добавлять все существующие узлы к своему списку предопределенных узлов. Пока есть связь по меньшей мере у одного из ваших предопределенных узлов с 3-им, каждый из этих узлов становится видимым друг другу. Конечно, самым надежным способом является добавление всех известных вам узлов в рое с этой папкой к вашему списку предопределенных узлов, но это не является абсолютным требованием.

Это также означает, что для того, чтобы создать частный рой, вам не нужно добавлять каждый существующий узел в качестве предопределенного узла. Вы можете просто использовать один и тот же узел в качестве соединителя между всеми узлами в рое. Таким образом, все, что необходимо знать каждому узлу это один единственный предопределенный узел, в идеальном случае один и тот же для всех из них. Но он не обязательно должен быть тем же самым узлом для всех из них. До тех пор, пока он может служить в цепочке к третьему узлу, этого вполне достаточно.

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


"Использовать реле сервер при необходимости"

В нескольких словах, релейный сервер [ретранслятор] в основном работает как прокси-сервер.

Использовать реле сервер при необходимости означает: Использовать сервер ретрансляции, когда невозможно непосредственно подключаться к другим устройствам из-за вопросов, связанных с NAT.

http://www.qnap.com/en/index.php?sn=9136
(BitTorrent Sync Installation & Setup Tutorial)

Вот то, что RomanZ из группы поддержки BT Sync имел об этом сказать отвечая на различные вопросы:

Вопрос: Как определяется "при необходимости"? В каких случаях некоторый узел становится "необходимым"? Каково точное поведение btsync если этот флажок включен? Это, как представляется, подразумевает, что информация физически проходит через релейные серверы.

Ответ: Реле сервер необходим, когда партнеры не могут установить прямое соединение по какой-либо причине. Релейный сервер имеет публичный IP, так что любой узел может к нему подключиться. Информация физически течет через релейный сервер, когда он используется, хотя это довольно медленно с точки зрения скорости передачи.

Вопрос: Что должно быть сделано для того, чтобы некоторый узел стал релейным сервером? Достаточно ли ему просто запустить btsync? Необходимо ли ему иметь содержание конкретной папки локально или будет этот поиск осуществлен даже если этот узел физически не имеют конкретной папки доступной ему локально?

Ответ: Узел не может быть реле. Релейный сервер передает ЛЮБУЮ информацию и не имеет никаких секретов [ключей], в то время как партнеры могут передавать данные другим узлам, только в том случае если у них имеется соответствующий секрет.

Вопрос: Необходимо ли релейным серверам запустить программу btsync для того, чтобы вести себя как серверы ретрансляции?

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

(RomanZ, Sync Support).


"Использовать трекер сервер"

Вот то, что RomanZ из поддержки BT Sync имел об этом сказать отвечая на различные вопросы:

Вопрос: Но как btsync знает IP:Порты BT трекеров, если они не определены в качестве изменяемых параметров пользователя? Это, похоже, подразумевает, что узел "под капотом" общается с известными и внутренне предопределенными серверами в сети BT, если только адреса BT трекеров IP:портов не обнаруживаются через трансляцию с помощью протокола UDP, и в этом случае, как именно это работает?

Ответ: BTSync имеет жестко "впаянные" DNS имена. "r.usyncapp.com" для сервера ретрансляции, "t.usyncapp.com" для трекер сервера. Первый разрешается как 2 IP-адреса, второй - как 3 IP-адреса.

Вопрос: Побочным эффектом этого может быть то, что компании BT, которая является постоянно присутствующей во всех btsync пересылках, может быть в какой-то момент приказано (например агентством АНБ [NSA]) собирать и хранить всю эту информацию, и нет никакой гарантии того, что они сделают это публично известным.

Ответ: Вся информация, которая отсылается трекеру это хэши некоторых секретов [ключей] и IP-адресов с которыми можно связаться для получения этих данных. Хэш не дает ни малейшего представления о синхронизируемой информации, даже если у вас есть огромная коллекция хэшей от конкретных IP-адресов.

Комментарий: Ну, вроде. Но к этому есть "но". Как представляется, хэш является крючком для привязки к папке и всем участникам роя. Это все, что кому-либо нужно. Если у вас есть хэш, вы можете подключиться к рою непосредственно, таким же образом, как и любой другой пользователь BTSync и смотреть на информацию напрямую. Или вы можете подключиться к трафику для конкретной папки и если шифрование не так надежно, как вы могли бы подумать, у вас есть "остальная часть истории". Не так ли?

Вопрос: Это означает, что с помощью btsync вы всегда находитесь под «бдительным оком» и все ваши ходы и все ваше содержание регистрируется теми, кто в этом заинтересован и имеет некоторое влияние на BT (угадай кто), и мы здесь не собираемся упоминать агентства типа АНБ. :)

Ответ: Трекер сервер не имеет вашей информации, как я уже говорил выше. Реле не имеет ключей и может быть легко отключено. BT не имеет технического способа контролировать ваши данные.

Комментарий: Ну, вроде бы. Но зачем им это надо вообще? Но те, о ком мы здесь говорим, это не сам BT. Мы говорим о "зле глубочайшего уровня" и всяких агентствах и клоунах всякого рода, которые имеют злые намерения в своем уме. Весьма сомнительно, что сами BT были бы заинтересованы в слежке за вашим трафиком. Зачем им это? Но то, что технически ДА - возможно, так это просто передавать информацию, которая проходит через BT, третьим лицам. "И все дела". На этом ваша миссия закончена.

Вопрос: И, наконец, каковы точные настройки, чтобы исключить трекеры BT, чтобы они не были бы в состоянии вмешиваться и/или подглядывать за вашим трафиком? Можно ли такое вообще в свете установки флажка "поиск сети DHT"?

Ответ: Отключите трекер, реле, DHT. BTSync будет прекрасно работать в локальной сети, а для того чтобы заставить его синхронизироваться с кем-то еще, вы должны будете использовать предопределенные узлы и делать перенаправление портов вручную, если ваши другие соучастники находятся за NAT.

Вопрос: Потому что, с точки зрения безопасности, если вы отключите опцию "использовать трекер BT", вы можете получить ложное чувство безопасности. Но, внутренне, нет абсолютно ничего, что предотвращает BTSync от возможности все еще связываться с трекерами или любым другим узлом BT узлом, если на то пошло, до тех пор, пока они остаются жестко "впаянными" в программу.

Ответ: Почему нет? Используйте брандмауэр [firewall]. Используйте свой собственный DNS сервер. Используйте файл серверов [/etc/hosts].

Вопрос: ... И спасибо за идеи о том, как блокировать IP с помощью, например, firewall. За исключением того, что в публичных применениях я могу только блокировать их на моем собственном узле, в то время как все остальные узлы остаются широко открытыми.

Ответ: Это почти не зависит от вашего firewall. Если FW поддерживает индивидуальный Контроль над программами - вы можете создать правило для BTSync, чтобы он выходил только на узлы, которые вы определяете в разделе предопределенных узлов. Или просто блокируйте все DNS имена/IP-адреса, используемые BTSync.

Создание частных безопасных сетей

Безусловно, вопросы безопасности являются огромным вопросом для обсуждения. Получается, что даже если вы зашифруете ваш трафик, алгоритм шифрования может быть не так безопасен, как вы могли бы подумать. В частности, недавно было установлено, что один из основных игроков в SSL бизнеса, якобы в результате их сотрудничества или финансирования из АНБ, выпустил схему шифрования, которую можно довольно легко расшифровать. Потому что их генератор случайных числ, на самом деле не является таким случайным, как он должен быть. Это, в свою очередь, означает, что такой алгоритм может быть относительно легко взломан с помощью подхода грубой силы. Но это довольно долгий предмет для обсуждения.

Тем не менее, вот интересная цитата с большим количеством последствий, которые не оставляют сомнений в том, что BT действительно оставляет этот вопрос "без комментариев", вместо того, чтобы выступить с публичным заявлением:

Re: Предложение: Открытый исходный код Bittorrent Sync клона в Go

От: Starfish
Дата: 28.01.14 9:08

Я испытал нечто, что заставило меня поверить в то, что Bittorrent действительно работает с АНБ.

Некоторое время назад я разместил тему на их форуме:
Работаете ли вы с АНБ
http://forum.bittorrent.com/topic/25831-are-you-working-with-the-nsa/

На форуме было много тем, и наибольшее количество комментариев получили комментарии от сотрудников Bittorrent. Моя тема также была в числе самых читаемых, но никакого ответа.

Через несколько недель я вернулся и дал теме толчек. Через некоторое время тема была удалена; ни одна из моих других тем не была.

Re: Proposal: Open source Bittorrent Sync clone in Go
https://groups.google.com/forum/?_escaped_fragment_=msg/golang-nuts/7WUj3nASuLo/Uq2268VmVzQJ#!msg/golang-nuts/7WUj3nASuLo/Uq2268VmVzQJ

Таким образом, естественно возникают некоторые вопросы.

1) Почему БТ никогда не представил никаких комментариев в этой теме?

2) Почему они никогда не сделали публичного заявления по этому вопросу?

3) Почему они удалили эту тему? А это, пожалуй, является наиболее показательным из всего, хотя может показаться, что это не о чем не говорит. Но, иногда ничто может превратиться во все ...

Если вы "сложите два и два вместе", ответ становится просто неизбежным ...

И, пожалуй, самым простым способом для АНБ подглядывать за тем, что вы передаете, не обязательно является путем дешифрования трафика, а просто зная "тайные слова" (ключи). В этот момент, они могут просто посмотреть на вашу информацию напрямую, даже не тратя ресурсы на его расшифровку, если сами данные не шифруются при помощи надежного алгоритма. И это самая легкая вещь в мире.

Кроме того, просто зная ваш ключ, они могут читать пакеты, получаемые или отсылаемые BTSync, в которых содержится достаточно информации для идентификации всего остального, после чего существует несколько вариантов получения всей информации в вашей коллекции. Следовательно, сам факт того, что BT, даже не отсылая ничего в АНБ непосредственно, всеже представляет им полную картину, даже не говоря ни слова более.

Это, в свою очередь, просто означает, что самому BT даже нет необходимости прилагать какие-либо усилия, чтобы смотреть на ваш остальной трафик. Сам факт того, что они знают ваши ключи является достаточным, сам по себе. А если BT их знает, то какие трудности могут существовать для АНБ и других учреждений их также знать?

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

Если у вас есть некоторое количество компьютеров в сети с фиксированным IP аддресом и вы заинтересованы в обмене информации только между ними, которая не доступна для широкой общественности, то это можно сделать с помощью BTSync. У него есть несколько конфигурационных параметров, которые позволяют включить или отключить некоторые функции.

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

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

Эта проблема может быть решена на частных сетях, особенно если вы знаете IP или имена доменов ваших узлов. Но для динамического DNS доступ становятся более сложным, а в некоторых случаях невозможным.

Итак, как вы можете создать личную и безопасную сеть, которая не будет информировать и полагаться на BTSync трекеры для соединения клиентов?

Дело в том, что в BTSync есть такое понятие как "Предопределенные узлы" в Папки (Folders) -> Настройки папки (Folder Preferences) -> Свойства (Properties). Если вы включите флажок "Использовать предопределенные узлы", то вы можете ввести список IP адресов и портов всех узлов, которые будут использоваться для связи между ними непосредственно. В этом случае вам не нужны BT трекеры. И вам не нужно делать трансляцию через DHT, чтобы обнаружить другие заинтересованные узлы. И вам не нужно реле для того, чтобы общаться друг с другом.

Это означает, что вы практически не оставляете о себе никаких следов в сети при передаче информации между этими узлами.

В этом случае можно просто ввести имена или IP-адреса всех узлов в вашей частной сети, и все они смогут передавать информацию между собой, не оставляя следов в сети, и BT трекеры даже не будут знать о вашем существовании. Потому что вы не делали никаких трансляций DHT и все ваши хэши, ключи и действия известны только вашим узлам.

Что касается настройки "При необходимости использовать сервер ретрансляции", все последствия этой настройки пока не вполне ясны. Логически, реле означает, что весь трафик проходит через них, а не только информация о соединении, и в этом случае, если алгоритмы шифрования в BTSync не заслуживает доверия, то, технически, ваш трафик может быть относительно легко расшифрован супер-компьютерами NSA, например, путем метода грубой силы.

На Windows

Таким образом, на Windows, настройки для различных флажков будут:

Таким образом, трекер не будет о вас знать, если вы не включите "Поиск в сети DHT", и тракер сможет читать ваши передачи (но кто знает, что фактически происходит "под капотом"). Иначе, если полагаетесь на трекер для соединения, он может НЕ представить вам список других узлов по каким-бы то ни было причинам, и, каким образом друг друга не увидят.

На Linux

На Linux, все настраивается через конфигурационные файлы. По умолчанию, на Ubuntu это будет /etc/btsync/debconf-default.conf.

Его расположение указано в командной строке процесса btsync:

~/btsync/install/btsync --nodaemon --log file --config /etc/btsync/debconf-default.conf

Вопрос: ... Мой сервер не присоединиться к синхронизационной группе. В моей конфигурации сервера я пытаюсь использовать мою собственную конфигурацию, а не ту, которая используется по умолчанию. Ключ тот же самый во всех случаях.

Я не вижу ничего неправильного в вашем конфигурационном файле. Но вы должны убедиться в том, что ваш брандмауэр (firewall) сервер не блокирует необходимые подключения. Поскольку у вас нет шанса что-либо увидеть, я хотел бы предложить вам сделать резервную копию файла конфигурации, полностью удалить раздел shared_folders и активировать веб-интерфейс, чтобы получить более полное представление о том, что происходит (ваш папка общего доступа все еще будет существовать, так как btsync сохранил ее в своей внутренней базе данных).

После того как вы решите вашу проблему, вы можете отключить веб-интерфейс и скопировать разделе shared_folders обратно.

[Потому что, если у вас есть раздел "shared_folders", в вашей конфигурации, то вы не увидите эти папки в веб-интерфейсе].

Вот пример одного из моих файлов конфигурации: (линии с ведущими // означает комментарий и может быть использован для того, чтобы превратить определенные значения параметров в комментарии.)

//!/usr/lib/btsync/btsync-daemon --nodaemon --config
// or, if you use the btsync version provided in xxx.gz file, then use this instead:
// ~/location_of_btsync_binary/btsync

// This btsync instance provides sync services for
// all common files in the YeaSoft Server Grid
{
	"device_name" : "yeasoft-gate2 - Server Sync",

// "storage_path" is location of btsync configuration files, logs and databases
// for all currently running shares, default on Ubuntu: /var/lib/btsync
	"storage_path" : "/var/lib/btsync-serversync",

// If "listening_port" is set to 0, then every time you start btsync it will use a random port,
// which you do not want if you want to specify the hosts directly
// and avoid using btsync tracker
	"listening_port" : 22144,
	"check_for_updates" : false,
	"use_upnp" : false,
	"download_limit" : 0,
	"upload_limit" : 0,
	"lan_encrypt_data": true,
	"lan_use_tcp" : true,
	"rate_limit_local_peers" : false,
	"webui" : {
//		"listen" : "10.65.0.16:8889",
//		"login" : "Administrator",
//		"password" : "MyTestPassword"
	}
	,

	"shared_folders" : [ {
		"secret" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
// dir is a top level directory of your data folder
		"dir" : "/mnt/data/tftproot/yeaboot",
		"use_relay_server" : false,
// If "use_tracker" : false and "use_dht" : false, then BT tracker
// won't even see your node (if you are concerned with security issues) 
		"use_tracker" : false,
// DHT allows a discovery of other nodes without btsync tracker
		"use_dht" : false,
		"search_lan" : true,
		"use_sync_trash" : true,
		"known_hosts" : [
//			"10.65.0.16:22144",
			"10.65.4.1:22144",
			"10.65.6.1:22144",
			"10.65.8.1:22144",
			"10.65.16.1:22144",
			"10.65.18.1:22144"
		]
	}
	]
}

Как вы можете видеть, я сделал тот же самый тест: веб-интерфейс отключен с помощью комментариев ... Если вы его активируете, вы должны закомментировать секцию общие папки (shared folder). В моем частном случае, я отключил также всех внешние помощников/реле и работаю только с предопределенными узлами.

(tuxpoldo, Advanced Member)

Полезная информация и обсуждения, связанные с Linux версией BTSync

Конфигурация

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

[Позже, вы можете скачать btsync обновление, в котором содержится только в исполняемую версию файла btsync, (например, btsync_i386_1.2.92.tar.gz для версии 1.2.92, последняя версия от 12 марта 2014, в которой отсутствуют файлы для первоначальной установки / настройки и которая не должна обычно использоваться в качестве первоначальной инсталляции, если вы не отчаянный. Потому как в ней отсутствуют, например, файлы /etc/init.d/btsync для запуска после перезагрузки О/С].

Если вы установили btsync из пакета, как, например, xxx.deb, то он должен был создать директорию для btsync баз данных и файлов конфигурации и установить скрипт инициализации /etc/init.d/btsync по умолчанию, и вы можете запустить/остановить btsync с помощью скрипта /etc/init.d/btsync [start|stop|restart], который автоматически обеспечивает правильные аргументы для процесса btsync при запуске.

См. также: BTSync версии: пользователя по сравнению с серверной

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

BTSync использует файлы конфигурации, которые содержат настраиваемые пользователем параметры. Если вы установили btsync с помощью некоторого пакета, как, например, .deb, то конфигурация по умолчанию и/или файлы данных btsync (не местоположение папки синхронизации, но местонахождение файлов базы данных и конфигурации btsync) будут находиться в параметре "storage_path" используемого вами файла конфигурации.

[из файла /etc/btsync/debconf-default.conf]
// "storage_path" - местонахождение файлов конфигурации btsync,
// журналов и базы данныхдля всех папок,
// которые в настоящее время работают, (на Ubuntu по умоляанию:
// /var/lib/btsync)
"storage_path" : "/var/lib/btsync",

Чтобы получить местонахождение вашего запущенного файла конфигурации, используйте комманду ps -ef | grep bts и посмотрите на --config параметр конфигурации в процессе btsync (по умолчанию /etc/btsync/debconf-default.conf).

Местонахождение конфигурационного файла зависит от того, как вы установили и запустили btsync и есть ли у вас файл инициализации /etc/init.d/btsync (Ubuntu), который используется для автоматической запуска/остановки btsync после перезагрузки.

См также:
Содержание и параметры конфигурационного файла

Как использовать BitTorrent Sync для синхронизации директорий в Ubuntu 12.04

By Justin Ellingwood

Источник:
How To Use BitTorrent Sync to Synchronize Directories in Ubuntu 12.04
https://www.digitalocean.com/community/articles/how-to-use-bittorrent-sync-to-synchronize-directories-in-ubuntu-12-04

Маркировано в: Ubuntu, Miscellaneous, Backups

Введение

Синхронизация папок и файлов между компьютерами и устройствами может быть сделана многими разными путями. Один из методов автоматической синхронизации контента является BitTorrent Sync. BitTorrent Sync является методом синхронизации контента, основанного на популярном протоколе BitTorrent для обмена файлами.

В отличие от традиционного BitTorrent, файлы обменивающиеся с использованием BitTorrent Sync зашифрованы и доступ к ним ограничен на основе общего секрета (ключа), который генерируется автоматически. В то время как собственно BitTorrent часто используется для распространения файлов общественным образом, BitTorrent Sync часто используется в качестве частного метода для синхронизации и обмена файлами между устройствами из-за его дополнительных мер безопасности.

В этом руководстве мы обсудим, как установить и настроить BitTorrent Sync на двух узлах с Ubuntu 12.04 VPS.

Установите BitTorrent Sync

Для начала, нам нужно будет установить BitTorrent Sync на обоих наших узлах с Ubuntu 12.04. Если вы хотели бы установить BitTorrent Sync на локальном компьютере, чтобы позволить вам синхронизироваться с сервером, вы можете найти бинарные пакеты здесь.

BitTorrent Sync относительно легко установить на Ubuntu 12.04, но он не включен в хранилищах по умолчанию. Мы можем использовать PPA (архив персональных пакетов), чтобы мы могли иметь доступ к поддерживаемому хранилищу BitTorrent Sync и управлять им с помощью наших нормальных инструментов apt.

Ubuntu 12.04 включает инструменты PPA в пакете называемом python-software-properties, который мы можем скачать через apt:

sudo apt-get update
sudo apt-get install python-software-properties

После того как он установлен, мы можем добавить PPA, который содержит обновленные пакеты Ubuntu:

sudo add-apt-repository ppa:tuxpoldo/btsync

Нажмите "Enter", чтобы добавить новый PPA.

После того, как новое хранилище добавлено, мы должны обновить apt, чтобы создать индекс пакетов для нового источника, а затем установить программное обеспечение BitTorrent Sync:

sudo apt-get update
sudo apt-get install btsync

Первоначальная конфигурация во время установки

На стадии установки, вам будет предложен ряд вопросов, которые могут помочь вам в настройке службы. Первый вопрос спрашивает, если вы хотели бы сделать эту конфигурацию, чтобы создать экземпляр BitTorrent Sync по умолчанию. Выберите "Да".

Мы хотим, чтобы BitTorrent Sync работал со своим собственным пользователем и группой в целях безопасности. Выберите ответ btsync на следующий вопрос.

Следующий вопрос будет о порте, который вы хотите использовать для связи между узлами. Вы можете оставить выбор 0, чтобы btsync выбрал случайный порт при каждом запуске. Если вы настраиваете брандмауэр (firewall) для вашего сервера (что очень рекомендуется), вы, вероятно, хотите определить конкретный порт.

Следующий вопрос о настройке запроса UPnP, которая нам не нужна. Выберите "Нет".

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

Далее, у вас будет спрошено для какого интерфейса вы хотите настроить службу. Если вы оставите его на 0.0.0.0, служба BitTorrent Sync будет использовать любой доступный интерфейс. Если вы хотите ограничить его к одной сети, в том числе частной сети DigitalOcean, вы можете указать соответствующий IP-адрес. Обратите внимание, что вы не сможете синхронизировать с вашим домашним компьютером с помощью частной сети.

Далее, выберете порт для доступа к веб-интерфейсу. Значение по умолчанию 8888, но вы можете изменить его на любой открытый порт.

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

Установка будет завершена, и ваш сервис будет запущен.

Если вам нужно изменить конфигурацию в какой-то момент в будущем, вы можете пробежать через меню конфигураций в любое время с помощью команды:

sudo dpkg-reconfigure btsync

Директорией для конфигурации службы является:

/etc/btsync

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

Как настроить общие папки

Для того чтобы синхронизировать папки с помощью BitTorrent Sync, пользователь или группа btsync должны иметь возможность писать в папки. Есть несколько различных способов для достижения этой цели.

Во-первых, давайте создадим папку:

sudo mkdir /shared

Нам нужно выполнить следующие действия на обоих экземплярах VPS которые будут синхронизироваться.

Предоставление Процессу btsync Полное Владение

Одним из способов дать пользователю btsync доступ, это просто дать владение папкой пользователю и группе btsync:

sudo chown btsync:btsync /shared

Это позволит сервису BitTorrent Sync правильно обслуживать содержимое этой папки, но мы не в состоянии писать в нее как обычный пользователь. Это может быть тем, что вы хотите, но, как правило, это не так.

Дайте Вашуму нормальному пользователю владение, а процессу btsync групповое владение

Если у вас есть только один обычный пользователь в системе, вы можете дать этому пользователю владение папкой и сделать btsync групповым владельцем папки:

sudo chown your_user:btsync /shared

Вы тогда будет необходимо дать права на запись этой группе:

sudo chmod 775 /shared

Это даст сервису btsync доступ к папке. Тем не менее, любые файлы, созданные в этой директории будут принадлежать вашему пользователю и группе.

Например, если мы добавим файл называемый test в этой папке, он будет полностью принадлежатб нашему пользователю:

cd /shared
touch test
ls -l
-rw-rw-r-- 1 your_user your_user 6 Jan 16 14:36 test

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

Мы можем сделать это путем установки бита SGID для директории. Это позволит установить группу на всех новых файлах, созданных внутри каталога, такую же как и группа самого каталога. Это даст надлежащий доступ на запись для изменения разных вещей:

sudo chmod g+s /shared

Теперь, когда мы создаем файл, ему будет даны разрешения директории:

cd /shared
touch test2
ls -l
-rw-rw-r-- 1 your_user your_user 6 Jan 16 14:36 test
-rw-rw-r-- 1 your_user btsync 0 Jan 16 14:41 test2

Это является значительной частью для получения соответствующих функциональных возможностей, но это пока еще не совсем правильно.

Удалите тестовые файлы, которые мы создали, прежде чем продолжать:

rm /shared/test*

Добавьте своего пользователя к группе btsync и дайте пользователю root владение

Метод выше работает в определенной степени, но файлы, которые передаются через BitTorrent Sync принадлежат пользователю и группе btsync. Это означает, что в настоящее время, любые файлы синхронизируемые сервисом не смогут быть отредактированы нами.

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

Добавьте любое имя пользователя, которому вы хотите дать возможность использовать btsync, к группе btsync:

sudo usermod -a -G btsync your_user

Это добавит группу btsync к списку групп вашего пользователя. Это позволит вам редактировать файлы, созданные в главной папке общего доступа с помощью процесса btsync.

Однако, папка по-прежнему принадлежит нашему пользователю, что не является лучшим вариантом решения вопросов, если у нас есть несколько пользователей в системе. Мы должны передать право собственности суперпользователю, чтобы предотвратить изменение параметров папки обычными пользователями. Мы также должны дать разрешение записи группе таким образом, чтобы любой пользователь из группы btsync мог бы добавлять содержание:

sudo chown root:btsync /shared
sudo chmod g+w /shared

Возможно, вам придется выйти из системы и снова войти в систему, чтобы изменения вступили в силу.

В конечном итоге, процесс создания общей папки, который хорошо работает для BitTorrent Sync, примерно такой:

sudo mkdir shared_folder
sudo chown root:btsync shared_folder
sudo chmod 2775 shared_folder
sudo usermod -a -G btsync your_user

Первая "2" в команде chmod устанавливает бит SGID таким же образом, как "g+s" сделал ранее. Это просто более лаконичный способ объединения этих команд.

Доступ к веб-интерфейсу BitTorrent Sync

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

Опять же, нам придется сделать это на каждом из серверов, которые мы хотим наладить для синхронизации.

Выйдете на веб-интерфейс, зайдя в IP-адрес вашего узла и порта, который был настроен во время установки. По умолчанию, это 8888:

your_ip_or_domain:8888

BitTorrent Sync login

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

Вам будет предложен с довольно простой интерфейс:

BitTorrent Sync main page

Добавление общей папки к первому узлу

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

На вашей первой машине, нажмите на кнопку "Добавить папку" (Add Folder) в верхнем правом углу. После этого появится окно, которое позволяет выбрать папку для общего доступа:

BitTorrent Sync add folder

Найдите папку, настроенную для совместного использования. В нашем случае, это папка /shared. Если вы выбрали папку, вы должны нажать на кнопку "Создать" (Generate), чтобы создать секрет (ключ) для этой папки.

BitTorrent Sync generate secret

Секрет, который генерируется, позволяет синхронизировать эту папку с другим экземпляром BitTorrent Sync. Это уникальное значение является в основном паролем, чтобы позволить двум узлам соединиться друг с другом.

Нажмите кнопку "Добавить" (Add), когда вы завершили эти действия. Это добавит нашу папку с интерфейсу и даст вам некоторые кнопки на стороне, чтобы управлять этой папкой.

BitTorrent Sync buttons

В настоящий момент, вас интересует только кнопка "Secret / QR". Нажмите эту кнопку, чтобы открыть окно, которое позволит вам выбрать, как вы хотите поделиться этой папкой.

Мы можем предоставить доступ к папке для чтения / записи через "Полный доступ" (Full access). Если мы хотим синхронизировать в одну сторону, как резервное копирование, мы можем позволить только доступ для чтения. Секреты, которые предоставляются для каждого вида доступа отличаются.

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

Добавление общей папки и секрета ко второму узлу

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

Во-первых, вы должны войти в веб-интерфейс, как вы делали это с первым сервером:

second_ip_or_domain:8888

После того, как вы вышли на интерфейс для второго сервера, нажмите кнопку "Добавить папку" (Add Folder) еще раз.

Добавьте локально созданную общую папку.

На этот раз, вместо того, чтобы нажать кнопку "Создать" (Generate), мы вставим секрет от другого экземпляра в поле «Секрет» (Secret):

BitTorrent Sync pasted secret

Нажмите кнопку "Add", чтобы создать общую папку в BTSync.

Через некоторое время, в обоих веб-интерфейсах, вы должны увидеть новую информацию в разделе «подключенные устройства и статус» (Connected devices and status):

BitTorrent Sync connected devices

Это означает, что наши два экземпляра BitTorrent Sync нашли друг друга! Значок слева означает, что мы дали полный доступ и файлы будут синхронизированы в обоих направлениях.

Проверочная Синхронизация

Теперь, когда мы настроили синхронизацию, давайте посмотрим работает ли она.

На одном из серверов (не имеет значения, какой из них, если вы настроили для полного доступа), мы добавим некоторые файлы к нашей общей папке.

Как пользователь, которому был дан доступ к группе btsync, создайте несколько файлов в общей папке:

cd /shared
touch file {1..10}

Это создаст 10 файлов в общей папке. Мы можем проверить, что им были даны правильные разрешения, набрав:

ls -l
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file1
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file10
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file2
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file3
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file4
. . .

Как вы можете видеть, файлы принадлежат вашему пользователю, но групповым владельцем является btsync. Это именно то, чего мы хотим.

Если мы проверяем наш другой сервер через несколько секунд, мы должны увидеть наши файлы в нашем общем каталоге!

cd /shared
ls -l
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file1
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file10
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file2
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file3
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file4

Как вы можете увидеть, файлы были отданы btuser и группе. Это потому, что сервис не может быть уверен в том, что оригинальное имя пользователя существует на второй системе.

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

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

sudo dpkg-reconfigure btsync

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

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

Мы можем установить соответствующий umask для создания файлов, которые будут доступны для записи и владельцем и группой (членом которой является наш пользователь), введя следующее:

002

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

touch /shared/write_test

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

-rw-rw-r-- 1 btsync btsync  0 Jan 30 10:44 write_test

В веб-интерфейсе, вы не увидите, что ваши файлы были синхронизированы, так как файлы не содержат никакой фактической информации. Если мы добавим некоторый контент для наших файлов, интерфейс будет обновляться, чтобы показать, сколько файлов мы синхронизировали:

for item in /shared/file{1..10}; do echo "some content" > $item; done
BitTorrent Sync file size

Вывод

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

Приложение является довольно гибкими в том, как можно синхронизироваться между несколькими компьютерами. Вы можете создать одноразовые секреты для того, чтобы никто не имел доступ к вашим папкам, вы можете обменивать информацию только с определенными узлами и синхронизироваться с вашим мобильным устройством. BitTorrent Sync обеспечивает систему контроля архивных версий с помощью .SyncArchive файла в папках и может ограничить скорость для того, чтобы у вас оставалась пропускная способность, доступная для других приложений.

Установите BitTorrent Sync на Ubuntu сервере

[Примечание: эта информация применима, если вы скачали обновление для btsync, которое содержит только btsync исполняемый файл и которая не производит никаких начальной конфигураций и не включает в себя файлы конфигураций по умолчанию и не создает для вас никаких папок.]

... На момент публикации, последней версией BitTorrent Sync является 1.0.134.

Перед тем как мы начнем, я буду считать, что на вашем сервере установлена текущая версия Ubuntu, я использую 12.04.2 LTS (Precise).

Сначала вам необходимо создать папку (директорию) для BT Sync из которой программа будет запускаться, так как текущая версия содержит только файлы самого btsync и LICENSE.txt

$ mkdir ~/.btsync

Далее необходимо загрузить файлы с сайта BitTorrent.

Для 64-битной версии BT Sync используйте следующую команду:

$ cd ~/.btsync && wget -O - "http://syncapp.bittorrent.com/1.0.134/btsync_x64-1.0.134.tar.gz" | tar xzf -

Или используйте эту команду, если ваша архитектура i386:

$ cd ~/.btsync && wget -O - "http://syncapp.bittorrent.com/1.0.134/btsync_i386-1.0.134.tar.gz" | tar xzf -

После использования предыдущей команды, вы должны быть в состоянии увидеть исполняемый файл и файл лицензии в папку, которую вы только что создали.

Исполните следующую команду для проверки версии исполняемого файла и увидеть опции:

$ ~/.btsync/btsync --help

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

Теперь вам необходимо создать файл конфигурации для для использования исполняемого файла. BT Sync поставляется с возможностью генерировать пример файла конфигурации с помощью следующей команды:

$ ~/.btsync/btsync --dump-sample-config > ~/.btsync/sync.conf

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

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

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

Альтернативой для секрета, дающего полные права доступа, является секрет только для чтения, что означает, что любые изменения на связанных удаленных папках никаким образом не повлияют на исходную папку или любые другие соответствующие связанные папки. [Файлы измененные на узлах r/o (только для чтения) не распространяются и более не загружаются]

Используйте следующую команду для создания уникального секрета:

$ ~/.btsync/btsync --generate-secret

Эта команда должна показать строку 32 с буквенными и цифровыми символами с заглавными текстовыми символами.

Например: A1B2C3D4E5F6GHIJKLMNOPQRSTUVWXYZ

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

Если вы хотите создать секрет только для чтения, вам будет необходимо представить сгенерированный секрет в команде:

$ ~/.btsync/btsync --get-ro-secret A1B2C3D4E5F6GHIJKLMNOPQRSTUVWXYZ

Это создаст другой буквенно-цифровой секрет, немного длиннее, который даст доступ к папке только для чтения.

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

$ mkdir ~/BTSync && mkdir ~/BTSync/example.com

Это создает две папки, одна в другой. Второй mkdir создает папку с именем example.com, внутри папки BTSync, которая может быть названа как угодно, но в данном примере, это создает папку, в которой мы будем хранить некоторые резервные копии файлов нашего сайта example.com

Теперь, когда у вас есть путь к папке и секрет, мы можем продолжить и начать редактирование файла конфигурации BT Sync. Вы возможно захотите сохранить резервную копию файла образца конфигурации, на всякий случай.

$ cp ~/.btsync/sync.conf ~/.btsync/sync.conf.orig
$ vi ~/.btsync/sync.conf

Содержание и параметры конфигурационного файла

После того, как вы открыли файл конфигурации образца, вы увидите, что он создан в формате JSON и содержит много комментариев, так что вы будете иметь возможность понять, что происходит. Ключевыми вещами, которые необходимо помнить, являются следующие:

  • device_name: Измените это на то, как вы хотите идентифицировать этот сервер.
  • listening_port: Определите уникальный и неиспользуемый порт для прослушивания сервисом.
    [Если вы введете 0, то программа будет использовать произвольный порт.]
  • storage_path: Это будет полный абсолютный путь к папке btsync, созданной ранее. Если вы не уверены, вы можете войти в папку и издать комманду pwd.
  • pid_file: Вы можете оставить это как есть, но мне нравится держать все в одном месте разместить, так что я это изменю, чтобы этот файл находился в storage_path и уберу комментарий из строки, удалив (//).
  • check_for_updates: Измените на false, так как проверка обновлений не требуется на сервере.
  • use_upnp: Измените на false, так как это не требуется на сервере.
  • webui/listen: Закомментируйте строку "listen": "0.0.0.0:8888", чтобы отключить веб интерфейс, так как он вам не нужен. Используйте две косые черты (//), чтобы закомментировать строку.

    [Это не совсем так. Веб интерфейс может быть использован независимо не от чего. Здесь 8888 означает порт, через который веб интерфейс соединятся с btsync сервером для обмена данными. 0.0.0.0 означает: использовать любой IP адрес на котором находится btsync сервер (применимо для случаев когда ваш btsync сервер находится на компе с динамическим IP.]
  • shared_folders: Примерно на строке 40 в файле, перед списком shared_folders, может быть начало многострочного комментария (/*), который будет необходимо удалить. Не забудьте также удалить соответствующий закрывающий комментарий линию (*/) примерно на строке 63.

    [В секции shared_folders вы представляете предопределенный список всех папок которые синхронизируются данным ключем. Если эта секция присутствует и не закомментирована, то эти папки не будут указаны в Веб интерфейсе, а папка, которая ранее была указана в Веб интерфейсе не будет той, которая синхронизируется. Вместо нее будут использованы папки указанные в shared_folders].
  • shared_folders/secret: Вставьте сюда секрет, который вы сгенерировали ранее.
  • shared_folders/dir: Абсолютный адрес папки, которую вы хотите синхронизировать.
  • shared_folders/use_relay_server: Измените на false.
  • shared_folders/use_tracker: [Использовать tracker для shared_folders]. Измените на false.
  • shared_folders/search_lan: [Искать на LAN]. Измените на false.
  • shared_folders/known_hosts: Введите каждое связанное устройство (комп) в формате IP или имя узла двоеточие (:), а затем номер порта. Добавьте несколько устройств, разделяя каждый из них запятыми (,).

    [Здесь вы можете указать все узлы, которые находятся на фиксированных IP. В этом случае, они будут не только участвовать в обмене, но и будут служить в качестве трекеров и сообщат всем подсоединенным узлам список всех адресов, подключенных к этому ключу.]

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

Ваш конфигурационный файл, скорее всего, будет выглядеть примерно так (NB: я убрал все аннотации и комментарии):

{ 
  "device_name": "web server",
  "listening_port" : 8888,
  "storage_path" : "/root/.btsync",
  "pid_file" : "/root/.btsync/btsync.pid",
  "check_for_updates" : false, 
  "use_upnp" : false,
  "download_limit" : 0,                       
  "upload_limit" : 0, 
  "webui" : {
    //"listen" : "0.0.0.0:8888",
    "login" : "admin",
    "password" : "password"
  },
  "shared_folders" :
  [
    {
      "secret" : "A1B2C3D4E5F6GHIJKLMNOPQRSTUVWXYZ",
      "dir" : "/root/BTSync/example.com",
      "use_relay_server" : false,
      "use_tracker" : false,
      "use_dht" : false,
      "search_lan" : false,
      "use_sync_trash" : false,
      "known_hosts" : 
      [
        "101.102.103.104:8888"
      ] 
    }
  ]
}

Теперь, запустите BT Sync следующим образом:

$ ~/.btsync/btsync --config ~/.btsync/sync.conf

Вы должны увидеть следующее:

By using this application, you agree to our Privacy Policy and Terms.

http://www.bittorrent.com/legal/privacy

http://www.bittorrent.com/legal/terms-of-use

BitTorrent Sync forked to background. pid = 27732

pid, скорее всего, будет отличаться. Он вам будет нужен для того, чтобы остановить процесс, если вам потребуется изменить файл конфигурации.

Если вы увидите ошибку, это, скорее всего, произойдет из-за ошибок в файле JSON или неправильного адреса папки. Проверьте оба и повторите попытку.

Если вам будет нужно остановить BT Sync, вы можете сделать это с помощью следующей команды.

$ kill -15 27732

Вы заметите, что число 27732 является pid, который упомянул BT Sync, когда я его запустил. Если вы его забыли, вы можете проверить файл .pid в папке ~/.btsync:

$ cat ~/.btsync/btsync.pid

После того, как он остановлен, внесите необходимые изменения и запустите его снова:

$ ~/.btsync/btsync --config ~/.btsync/sync.conf

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

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

Если у вас возникли проблемы, сбросьте комментарий (ниже).

Источник:
Install BitTorrent Sync on a Headless Ubuntu Server
http://artofsimplicity.co.uk/install-bittorrent-sync-on-a-headless-ubuntu-server/

Главные проблемы

Главные проблемы с которыми встречаются новые пользователи следующие:

Синхронизация остановилась: время устройства отличается на более чем 600 секунд

(Sync stopped: device time time difference more than 600 seconds)

Во первых, если вы увидите это сообщение об ошибке в закладке Устройства (Devices), то оно, в принципе, означает, что время на вашем компьютере установлено неправильно и поэтому невозможно установить какая из версий некоего файла является новей чем тот же файл, но на другом узле, и посему BTSync не знает какую из этих версий загружать.

Но может оказаться, что в реальности время на вашем компе установлено правильно, но существует разная версия зимнего/летнего времени в различных точках мира, в зависимости от того с какого конкретного источника они получают свою информацию о временных зонах.

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

"Хорошие новости" заключаются в том, что решение есть. "Плохие новости" - вам может захотеться блевонуть. Но это всего-лишь психологическая проблема. Не волнуйтесь, мы их "достанем" и они починят эту ошибку. Мы их УЖЕ достали, да и так, что они прямо искры пускают! :)

В основном, решение заключается во включении журнала и затем нахождении этого узла в журнале и изменения времени на вашем компе таким образом, чтобы скомпенсировать эту разницу. Скорее всего, ошибка будет +/- 1 час, но мы видели и случаи +/- 2 часов. Это связано с корректировкой летнего и зимнего времени на вашей локальной системе.

Для того, чтобы включить ведение журнала см:

Включение ведения журнала

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

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

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

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

См: Если время установлено неправильно на вашем компе

Неполная загрузка или отсылка файлов

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

В соответствии с логикой программы (в момент версия 1.3.105 включительно), BTSync не будет загружать или отсылать файлы, которые были изменены, удалены или переименованы. Следовательно, если вы решите отредактировать некий файл на r/o узле, вы более не будете получать его обновленные версии от других узлов.

См: Таблица поведения BTSync

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

Более того, такие узлы будут показаны остальным узлам как не полностью синхронизированные в колонке Статус (Status) в закладке Устройства (Devices), но никакой пересылки происходить не будет. И, пожалуй, наиболее неприятным эффектом такой логики будет то, что даже если вы попытаетесь восстановить оригинал файла или восстановить удаленный или переименованный файл, это ничего не поможет и этот файл по прежнему не будет обновляться на вашем узле, что бы вы не делали. С того момента, этот файл будет навеки помечен как не синхронизируемый в базе данных программы.

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

См: Восстановление первоначального статуса синхронизации некоторых файлов, которые более не синхронизируются

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

См: Использование файла .SyncIgnore для исключения некоторых файлов из синхронизации

Включение ведения журнала

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

В Windows

Ведение журнала можно включить или отключить, щелкнув правой кнопкой мышки на значке btsync в панели задач и выбрав "Включить журнал отладки" (Enable Debug logging). Файл журнала называется sync.log и он будет расположен в C:\Users\your_accont_name\AppData\Roaming\BitTorrent Sync, который является обычным текстовыи файлом.

На Linux

Создайте обычный текстовый файл debug.txt в папке, указанной в "storage_path" параметре конфигурационного файла, который должен содержать строку FFFF и больше ничего (по умолчанию на Ubuntu /var/lib/btsync/debug.txt).

См: Конфигурация, чтобы получить дополнительные сведения.

Затем просто перезагрузите btsync. Журналы могут вырасти до довольно большого размера в периоды высокой активности, так что вы, вероятно, захотите его отключить, как только вы найдете то, что вы искали. Просто переименуйте debug.txt например в debug_XXX.txt или что-то в этом роде и перезагрузите btsync снова.

BTSync версии: пользователя по сравнению с серверной

Вот моя ситуация: я использую версию пользователя ...

Я оставался в стороне от серверных дел, потому что это выглядело сложнее, но в последнее время я подумал, что будет полезно, если машина, которая работала, как мой сервер для этого (та, на который сгенерировала все секреты, по сути) я использовал этот вариант, так как *похоже*, что скрипты сервера работают на более низком уровне, и мне нравится идея быть в состоянии указать все эти параметры в файле конфигурации - особенно приоритеты файлов, и чтобы контролировать, как долго хранятся архивы.

Прежде всего давайте проясним одну вещь: оба пакета устанавливают ту же исполняемую программу BitTorrent Sync. В связи с этим, нет абсолютно никаких различий между тем, что BitTorrent Sync может делать. Разница состоит в том, как ваша машина работает с BitTorrent Sync:

Давайте подведем итог: для вас имеет смысл использовать btsync вместо btsync-user, если:

[...]

Есть ли способ настроить btsync на машине, на которой уже установлен btsync-user и на которой уже имеются файлы, которые на ней синхронизированы?

Да. Но сначала необходимо принять решение, является ли серверный пакет действительно правильным вариантом для вас. Если да, я объясню здесь, как вы можете перенести систему.

(tuxpoldo, Advanced Member)

Установка и изменение владельца файлов и прав доступа

Я хотел бы изменить пользователя на другого пользователя (не имя пользователя для входа в систему, но пользователя, который владеет папками). в настоящее время пользователь установлен как btsync.

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

Есть настройки для обоих из них: во время первой установки, debconf спрашивает о важнейших параметрах, необходимых для установки демона. При исполнении реконфигурации сервиса, debconf запрашивает о всех доступных настройках. Если вы выполняете перенастройку таким образом

sudo dpkg-reconfigure btsync

У Вас будет спрошено ввести параметры учетных данных и там вы сможете указать как имя пользователя, так и группы по вашему выбору для btsync демона .

Кроме того у вас будет спрошено также значение для UMASK для демона. Этот параметр определяет, с какой маской файлы создаются и записываются. Для того, чтобы дать возможность для группы писать во все файлы и папки, вы должны указать 0002

Комментарий:: это очень важный момент. Он устанавливает SGID бит в атрибутах файла. Если вы хотите, чтобы файлы были также доступны для записи вам, как пользователю (а не только для btsync), для таких вещей как FTP передачи файлов на r/w узлы и учетная запись пользователя отличается от той, которая используется по умолчанию (btsync), то вы можете добавить свою учетную запись к группе btsync, а также дать права доступа к файлам для записи группой (btsync) (режим файла 2775 - обратите внимание на ведущую 2)]. Вот правило:

Установка идентификатора группы (setgid) похожа на setuid, за исключением того, что эффективный идентификатор группы для процесса (GID) изменяется на владельца группы файла, и пользователь получает доступ на основе разрешений, предоставляемых этой группе. (Иными словами, разрешение доступа а файлу определяется не группой процесса, а группой к которой принадлежит файл. Даже если процесс принадлежит к другой группе, доступ к этому файлу определяется группой файла.)

Когда разрешение setgid применяется к директории, то файлы, созданные в этой директории, относятся к группе, к которой принадлежит директория, а не группе, к которой принадлежит создающий процесс. Любой пользователь, который имеет права на запись и исполнение для директории, может создать там файлы. Однако файл принадлежит к той группе, к которой принадлежит директория, а не той группе, к которой принадлежит пользователь.

Special File Permissions (setuid, setgid and Sticky Bit)
http://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html

Один вопрос: вы уверены в том, что, что серверные пакеты являются правильным выбором для Вашего случая? Если ваши машины Linux используются в качестве обычных настольных машин, когда пользователь в интерактивном режиме заходит и хочет синхронизировать папки, принадлежащие ему, может быть, пакеты для настольного использования btsync-user являются для вас более подходящими.

(tuxpoldo, Advanced Member)

Таблица поведения BTSync

Примечание: эта таблица была изначально создана как наметка и концепция в попытке полностью описать поведение btsync при всех возможных условиях и модификациях файлов пользователями на обоих концах, мастер (r/w) и ведомый (r/o) узлы.

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

Согласно нашему пониманию в настоящее время, существует несколько принципов, которые могут помочь понять последствия различных действий пользователя и изменения в файлах в иерархии синхронизируемой папки (главная папка синхронизации / директория).

Первый принцип: В основном, необходимо иметь в виду факт того, что центральной идеей дизайна btsync, насколько мы понимает, является сохранение файлов на всех узлах в одном и том же согласованном состоянии, то есть точно такими же, какими они существуют на мастер (r/w) узлах. И, если мы будем иметь ввиду идею, что r/w узлы "диктуют" условия и статус файлов, и файлы на r/o узлах должны быть точной копией содержимого на r/w узлах, если эти файлы не были изменены, удалены или переименованы на r/o узлах, то многие вещи смогут стать интуитивно понятными.

Вторым принципом является правило: «пользователь знает лучше», что означает, что если существуют какие-либо конфликты между логикой обновления btsync и операциями с файлами, исполненными пользователем вручную, например, файлы удалены, изменены, переименованы и так далее, то действие пользователя имеет приоритет над логикой обновления в btsync.

Кроме того, есть логическое различие между изменениями файлов, совершенными пользователем на r/w и r/o узлах. Поведение r/w узлов, как представляется, полностью соответствует логике и эквивалентна тому как это происходит на уровне О/С, то есть, когда вы удаляете какой-либо файл, он просто исчезает, без остающейся памяти о нем. Но на r/o узлах, поведение btsync не настолько последовательно и в некоторых случаях может рассматриваться как совершенно непоследовательное и совершенно не-интуитивное. Вы увидите это в таблице ниже.

В данный момент, необходимо иметь в виду, что, в общем плане, любые изменения, удаления и переименования файлов на r/o узлах маркирует модифицированные (оригиналы) файлы как не-обновляемые и не подлежащие распространению. И это необходимо помнить четко, так как последствиям могут быть совершенно не тем, что вы ожидали изменив какой-либо файл вручную на r/o узле по какой-либо причине. Вы, таким образом, сказали системе "я знаю лучше что делаю, а посему - не трогать этот файл", что и произойдет. "Слушаюсь и повинуюсь" принцип вступает в силу. И это необходимо осознавать четко. "А иначе вам удачи не видать".

Кроме того, даже если некоторый файл удаляется, то он по-прежнему остается в базе данных r/o узла и просто помечается как "труп" для btsync (не обновляемый и не распространяемый), и любая его модификация, даже его переименование, не изменит статус файла с тем же именем в будущем. Другими словами, переименование файла не несет с собой атрибутов доступа к файлу в новый файл. Атрибуты остаются со старым именем файла, и они по существу означают «мертвый файл», что, как представляется, логически неверным дизайном.

Независимо от причин, которые существовали для такого дизайна, это создает довольно нежелательные последствия для будущего файла с тем же именем, и никакого способа изменить его состояние распространения обратно, в исходное состояние, чтобы вы не делали, кроме сброса атрибутов в исходное состояние для всей коллекции (базы данных) r/o узла с помощью опции "Восстановить измененные файлы на оригинальную версию" (Restore modified files to original version) через вкладку Преференции папок (Folder preferences) -> Дополнительные (Advanced), по крайней мере на Linux r/o узлах, не существует.

Команда Btsync могла бы пролить свет на эти вопросы определенно. В противном случае, нам придется только предполагать относительно того, что в действительности происходит "под капотом" и по каким причинам. Но, по крайней мере, мы можем попытаться, и, надеюсь, эта таблица имеет шанс стать начальным толчком в детальном прояснении всех возможных случаев, и, тем более, мы надеемся, что с помощью разработчиков или команды поддержки нам удастся, по крайней мере разъяснить и обсудить существующее поведение, что в конечном итого должно быть сделано, рано или поздно, независимо от того, как вы на это смотрите в настоящий момент. В противном случае ...

Таблица Поведения BTSync

Операция То, что происходит
Новый файл добавлен Сторона мастер (r/w) узлов: Файл будет добавлен в базу данных, помечен как обновляемый и распространяемый, и будет распространяться и будет отослан всем узлам, r/w и r/o, отмечен как обновляемый и все модификации мастер версии будут распространяться всем узлам.

Ведомая сторона (г/о узлы): Постольку поскольку этот файл был добавлен к R/O узлу не самой программой btsync, но некоторыми другими способами, и он не существует на r/w узлах, этот файл будет исключен из распространения на другие R/O узлы и не будет добавлен в базу данных этого узла (??? - не уверен в этом).

Поскольку база данных содержит только файлы, которые существуют в данный момент на r/w узлах, плюс файлы, которые в какой-то момент существовали в базе данных r/w узлов, но были либо удалены или переименованы на этом r/o узле.
Файл удален Мастер сторона: Файл будет также удален со всех узлов, r/o и r/w. Если этот файл будет восстановлен в будущем, он появится и будет распространяться снова (как и любой вновь созданный файл) на все узлы. Другими словами, это будет рассматриваться таким же образом, как и вновь созданный файл.

Это означает, что удаление файла на r/w узлах не влияет на статус распространения файла с тем же именем в будущем. Но на r/o узлах, удаление локального файла ведет себя совершенно иным образом и, по сути, несовместимым.

Ведомая сторона: Если какой-либо файл был удален на r/o узле, то он будет навсегда помечен как удаленный или "исключен из обновлений и распространения" в базе данных этого узла, и имя этого файла эффективно станет покойником для BTSync, что бы Вы не делали с файлом с тем же именем в будущем. Единственным способом восстановить его обновляемый и распространяемый статус является использование "Восстановить измененные файлы в оригинальной версии" (Restore modified files to original version), которая восстановит нормальное состояние распространения и обновления для всех файлов в базе данных, а не только этого единственного файла.

Кроме того, если файл с таким же именем будет создан в будущем, то он не будет обновляться от других узлов и не будет распространяться на другие r/o узлы, по какой-то странной причине. В чем причина такого поведения - неясно на данный момент. Казалось бы, что если какой-либо файл "воскрес", то он должен снова стать предметом обычной процедуры распространения и обновления, таким же образом, как это и происходит на r/w узлах. Но навсегда исключить какой-либо файл из распространения, независимо от будущих действий пользователя, которые могут восстановить этот файл, представляется совершенно нелогичным и противоречит нормальному поведению О/С для аналогичных операций на файлах. Кроме того, это не соответствует поведению r/w узлов.

Потому что этот файл не должен быть обновлен или распространяться только до тех пор, пока файл с тем же именем не восстановлен, переименован или создан в будущем. В противном случае, вы получаете эффект черной дыры: что бы вы не делали с файлом с таким же именем в будущем, будет иметь эффект просто быть засосанным в земли "нигде", с точки зрения обновления или распространения, что эквивалентно черной дыре в логике. Это также совершенно не соответствует нормальному поведению О/С или простой логике, и посему, совершенно контр-интуитивно. См. переименование файлов ниже для всех аргументов на эту тему.

Да, здесь существует логическое затруднение. Потому что, если файл был изменен пользователем, он должен прекратить обновляется и распространяться btsync, потому как "пользователь знает лучше", что он делает, а ежели он так делает, значит у него есть причина, и, в этом случае, логика программы неприменима. Но если файл будет восстановлен после удаления и его статус возвращается к нормальному распространению, то что вы будете делать в случае если файл изменен, что, в соответствии с логикой программы, НЕ должно привести к его распространению?

Но это противоречие, как представляется, разрешимо путем создания команды "Принудительное обновление", отсылаемой r/o узлом другим узлам, когда файл будет ВОССТАНОВЛЕН, а не ИЗМЕНЕН. Таким образом, сам факт восстановления файла, по сравнению с его изменением, может быть обнаружен с помощью простой проверки его флага "физически не присутствует в файловой системе" в базе данных, который устанавливается в тот момент, когда btsync первоначально обнаруживает удаление файла.

Таким образом, если файл, по какой-либо причине, появляется, когда btsync смотрит на его записи в базе данных, то он знает, что предыдущее состояние этого файла было "не существует в файловой системе". Следовательно, это ВОССТАНОВЛЕНИЕ, а не изменение файла.

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

См: Восстановление первоначального статуса синхронизации некоторых файлов, которые более не синхронизируются
Файл или суб-папка переименована Прежде всего, уважаемые, постарайтесь понять, что логика и присущие логические конфликты настолько сложны, что, как говорят, "тут и черт ногу сломает", как и во всей логике BTSync. Вряд ли существует хоть один смертный на этой планете, кто действительно понимает эту логику и все присущие в ней конфликты во всех возможных вариантах. Так что вы не один, если вам кое-что, если не почти все из всего этого будет не совсем понятно.

Поэтому, "не падайте со стула" когда вы читаете все это. Попробуйте хоть чуть чуть осознать, что все это означает. Кто знает, может быть мы сможем убедить BTSync заменить всю эту супер-сложную и супер-непредсказуемую логику на нечто гораздо более простое и интуитивно понимаемое любым "смертным", хоть и шансы этого не так уж и велики. Они, понимаете ли, просто любят "упираться рогами" и "ни в зуб ногой". Но, как говорят "еще не вечер"...

Мастер сторона: Файл будет переименован в базе данных. Затем файл будет также переименован на всех узлах, r/w и r/o . Никакой фактической пересылки файлов не происходит. Если этот файл переименовывается обратно в исходное имя в будущем, результаты будут такими же. Он будет просто переименован на всех узлах. Таким образом, операция переименования файла ведет себя последовательно, как и следовало ожидать делая это в О/С.

Но если существует несколько r/w узлов на этом ключе (главной папке), поведение будет отличаться, если другие r/w узлы уже синхронизированы с этим файлом. В этом случае, ваш вновь названный файл будет отправлен им как новый файл, но что еще хуже, так это то, что они также перешлют вам файл со старым именем файла. Таким образом, в конечном итоге у вас появится два файла с точно тем же содержанием, но с разными именами файлов (Мы только гадаем в этом случае, потому что это не было проверено в действии с файлами, но только с директориями. Этот вопрос довольно сложен и зависит от того, были ли в данный момент оба r/w узла на линии).

Если бы только один из них был в сети, то тогда, когда второй появится, то так и произойдет. Но если оба они были в сети, когда файл или папка был переименован, то все может произойти иначе, и второй копии того же файла не будет создано, а файл действительно будет переименован, как вы и ожидали. Кроме того, есть разница между временем обновления файла, каким его видят поставщики и получатель. Если версия файла на одном узле окажется более свежей, чем другая (на другом узле), то более свежая "победит" более старую версию.

("Короче, ребята", приготовьтесь увидеть такие сюрпризы, "которые вам и не снились", с точки зрения логики. Вся эта схема является логическим кошмарам, порой доходящим до абсурда, который, даже в принципе, не может быть логически решен в зависимости от всех возможных условий. Мы предложили BTSync изменить логику на гораздо более простую, которую любой человек смог бы интуитивно понять, но...).

В случае, если вы переименовали под-папку, то вы получите две копии одного и того же содержания под-папок с двумя разными именами, старым и новым. И это совершенно неинтуитивно.

Таким образом, вам нужно будет сначала добавить под-папку со старым именем к вашему .SyncIgnore файлу, и только после этого вы можете переименовать подпапку. В результате, ваш узел не будет принимать подпапку со старым именем от других узлов, но по-прежнему отошлет вновь названную подпапку на другие узлы. То же самое необходимо будет сделать с .SyncIgnore в случае, когда вы переименовали файл.

Тут вступает в силу логический конфликт. Если вы имеете более чем один r/w узел, а любой из них "диктует правила игры", и оба они имеют разные версии, просто потому, что имена отличаются, то, что бы вы на их месте сделали, чтобы разрешить этот конфликт, кроме как распространить ОБЕ версии по всем узлам?

Ведомая сторона: Если вы переименовали файл на r/o узле, то будет переименован только на этом узле. Резервного копирования старого файла в папку .SyncArchive не произойдет.

Поскольку этот файл (с новым именем), скорее всего, не существует на мастер (r/w) узлах, новый файл будет считаться локальной копией, не подлежащей распространению или обновлению от других узлов, и по понятным причинам - его, скорее всего, просто не существует на других узлах.

Кроме того, файл, имеющий имя старого файла будет помечен как не подлежащий распространению и не обновляемым в базе данных для этого узла, и если вы решили воссоздать файл с тем же именем (старым) в будущем, или переименовать файл с новым именем в исходное имя файла, он все равно будет рассматриваться как не-обновляемый и не распространяемый. Странная логика. Было бы интересно узнать причины этого.

Кроме того, если файл с таким же именем файла модифицируется или создается на стороне R/W узла в будущем, то он не будет отослан r/w узлами этому r/o узлу. Это значит, что с этого момента, этот файл становится «мертвым» для btsync с точки зрения этого R/O узла, и он никогда не будет обновляться в будущем, что бы вы не делали, что является логическим бедствием и непоследовательностью поведения. Да, есть логическое противоречие в этой ситуации: так как файл был переименован, и это было сделано на R/O узле, то файл со старым именем файла не должен логически быть обновляем, поскольку его больше не существуют в R/O узле, и это, вероятно, является причиной почему btsync не удаляет этот файл из базы данных, а маркирует его как "покойник" для будущих обновлений и распространения. И все здесь еще более "накручено" в плане логики если рассмотреть все возможные логические варианты.

Да, нынешняя логика "работает" для ситуаций, в которых вы просто не хотите получать обновления этого файла, что имеет смысл. Но если файл с таким же именем снова восстанавливается на этом R/O узле в будущем, в результате действий пользователя, то имя этого файла должно логически вернуться в исходное состояние распространения. Это, по сути, по же самое как и обычное восстановление случайно удаленного файла в файловой системе из резервной копии. Можете ли вы себе представить случай, когда вы не можете восстановить какой-либо файл после того, как он не был удален, что бы вы не делали? Более того, вы можете себе представить случай, когда если вы восстановите файл, его атрибуты доступа или владения станут другими, чем они были в исходном файле? Почему?

Таким образом, это поведение совершенно несовместимо по сравнению с эквивалентной операцией на уровне О/С, то есть: если файл переименован, то старый файл просто исчезает и никакой "памяти" о нем не остается, и, следовательно, если вы переименуете его обратно, все его атрибуты перейдут с физическим файлом, а не с именем файла. Так что, если некоторый "мертвый" файл воскрешен путем операции переименования, то атрибуты его обновление и распространения должны быть установлены такими же, как и физического файла. И, если этот файл был воссоздан не через переименование обратно, но в результате копирования файла или операции его редактирования / сохранения, то, так как мы не просто его переименовали, то он должен получить атрибуты файлов по умолчанию, такие же, как для вновь созданного файла. (Надеемся, что у вас еще не лопнул череп от этой логики).

Мы не знаем причин для этой логики, но то, что кажется более верным подходом для разрешения этого конфликта, является восстановление первоначального состояния распространения для этого имени файла на данном R/O узле в случае, если либо файл с тем же именем снова воссоздан на этом узле, что будет означать, что файл с таким именем существует опять, и мы, таким образом, хотим получать его обновления и распространять его другим узлам. Или, если файл переименован обратно, то это логически означает восстановления его статуса распространения обратно в исходное состояние.

Таким образом, более логичным поведением было бы следующее: если файл переименовывается на R/O узле, то файл со старым именем файла помечается как не-распространяемый и не обновляемый на этом узле, но только если файл с же именем не воссоздан опять, или файл не будет переименован обратно в исходное имя файла и его статус распространения возвращен в обычный режим.

Поскольку старое название файла сохраняется в базе данных, то btsync имеет достаточно информации, чтобы принять решение о том, что файл "воскрес". Это значит, что независимо от того, каким бы не стало содержимое файла с исходным именем файла, то статус его ОБНОВЛЕНИЯ (но не распространения на другие R/O узлы) возвращается в обычный режим, как только он был обновлен, чтобы соответствовать главной версии этого файла. Это, в свою очередь, означает, что этот файл будет немедленно обновлен от других узлов в их версии файла. Только после этого его статус распространения на другие узлы восстанавливается, чтобы они не получили версию файла, который не существует на R/W узлах, думая, что это всего лишь новая версия файла, который уже существует в их базе данных. Тут, как говорится, "да уж!"

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

Все это означает, что btsync должен поддерживать два бита (флага) статуса файла - обновление (от R/W или R/O узлов), и распространение. Похоже, в настоящее время btsync пытается управлять всей логикой только с помощью одного бита, что не сможет привести к последовательному и предсказуемому поведению, что бы они не делали.

Файл обновлен / изменен Мастер сторона: (R/W) Обновленная копия файла будет переслана всем R/W и R/O узлам.

Ведомая сторона: (R/O) С тех пор, файл будет рассматриваться как личный и помечен как не-обновляемый и не разпространяемый. Любые будущие изменения этого файла не будут распространяться. Поскольку R/W узлы, не обновляются от R/O узлов, будущие модификации этого файла на R/W узлах не будут пересланы этому узлу.

Даже если вы удалите этот файл из этого R/O узла, если вы хотите чтобы он был заново вам отослан другими узлами, он не будет вам переслан ни R/W, ни R/O узлами. Этот файл становится "покойником", что является странной и совершенно не-интуитивной логикой, несовместимой с тем, что можно было бы ожидать в такой же ситуации в файловой системе.
Файл с таким же именем воссоздан снова после удаления Мастер сторона: Этот файл будет рассматриваться как вновь созданный файл и будет распространяться на все остальные узлы. Другими словами, на r/w узлах, не существует «памяти» об удаленных файлах. Как только они будут удалены на r/w узле, они просто исчезают без следов, как на r/w, так и на всех r/o узлах. Это согласуется с поведением О/С.

Ведомая сторона: Этот файл будет по-прежнему сохранять свой не обновляемый статус и не будет распространяться на другие R/O узлы. Старое название файла буквально становится покойником для btsync. Это имя файла по-прежнему существует в базе данных для этого R/O узла, но его статус становится "мертвым" - его не трогать через btsync, что совершенно несовместимо логически, в том числе с эквивалентной операцией на уровне О/С. Файл должен быть «покойником» только до тех пор, пока он не существует физически на этом R/O узле. Но, как только что-либо воссоздает файл с таким же именем, независимо от его содержания, он должен снова стать обновляемым от других узлов и распространяемым, но только после того, как его содержание было восстановлено от других узлов.
У файла не было права на запись во время начального индексирования и создания базы данных Мастер сторона: ???

Ведомая сторона: ???
Права доступа к файлу изменены и btsync более не имеет разрешения для записи Мастер сторона: ???

Ведомая сторона: В Linux, постольку поскольку процесс btsync (обычно, но не обязательно) запускается как демон, он работает с привилегиями суперпользователя, и, следовательно, способен изменять владельца файла и права доступа к нему как ему угодно, что и происходит в действительности. Это означает, если этот файл обновляется от R/W узла, обновления будут по-прежнему распространяются на этот R/O узел и права собственности будут установлены как btsync:btsync, какими бы они ни были до момента этого обновления (все несколько сложнее в различных ситуациях, как, например, установлен ли флаг SGID на данной директории или файле, а если нет, то права владения и доступа должны оставаться прежними и не изменяться программой btsync.

В Windows: ???

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

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

Проблемы в логике обновления и распространения файлов

Как представляется, логика, используемая btsync для R/O узлов нуждается в усовершенствовании, причем с фундаментальной точки зрения. Потому что, она не обнаруживает различные операции, совершенные пользователем над файлами, должным образом и упрощает все возможные случаи, такие как модификация файла, переименование, удаление и восстановление, сваливая их всех в кучу с понятием "файл не является обновляемым и распространяемым". Но все эти случаи имеют различную смысловую значимость.

Модификация файла означает, что этот файл определенно существует в базе данных и его флажок "физически присутствует в файловой системе" установлен. В этом случае два отдельных бита в базе данных - "обновляемый" и "распространяемый" следует сбросить. Но "физически присутствует в файловой системе" не должен быть изменен.

Удаление файла означает, что его "физически присутствует в файловой системе" бит был установлен, но фактически, во время проверки, этот файл не был найден в файловой системе. В этом случае, его «физически присутствует в файловой системе», «обновляемый» и «распространяемый» флажки должны быть все сброшены.

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

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

Когда файл переименован, это эквивалентно двум отдельным операциям: 1) файл удален, 2) новый файл был создан пользователем, которого не существовало раньше. В случае 1), старый файл помечается как «физически присутствует в файловой системе», «обновляемый» и «распространяемый» - все сбрасываются. Для нового файла (случай 2), его "физически присутствует в файловой системе" бит устанавливается, а "обновляемый" и "распространяемый" - оба сбрасываются.

Эти 3 бита дадут возможность обрабатывать все случаи, которые мы можем себе представить в данный момент, без каких-либо проблем и независимо от любых операций пользователя над этим файлом. Кроме того, результат будет логичным и интуитивно понимаемым для пользователя, который, например, может решить восстановить некоторые удаленные файлы из резервной копии и будет ожидать, что они станут "обычными файлами", к которым применимы все правила для "нормальных файлов", в том числе их распространения и соответствия их содержания с версией, существующей на мастер узлах в настоящее время, - "мастер диктует" правило применимо. Потому, что он станет таким же файлом, каким он существует на мастер стороне, и единственным, кто диктует его содержимое является мастер узел и его копии на R/O узлах.

ВСЕ, что необходимо помнить пользователю, так это то, что если какой-либо файл изменен или удален, он будет считаться "личной копией" пользователя и не будет распространяться, и если файл переименован, то новый файл не будет ни обновляться, ни распространяться, потому что его содержание не соответствует версии на главном узле, которой на нем вообще не существует. Это то же самое поведение, как будто пользователь добавил новый файл на R/O узле.

Во всех других случаях, все должно вести себя как и с обычными распространяемыми и обновляемыми файлами. Логика становится простой и интуитивно понятной, и все должно работать без проблем, конечно, если мы здесь не упускаем нечто из рассмотрения из-за недопонимания некоторых деталей.

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

Поэтому, правило "пользователь знает лучше" должно быть устранено из логики системы, и только тогда эта система может быть рассмотрена как стабильная и предсказуемая. Главное и единственное правило, которое логически имеет смысл с точки зрения системы, это: "мастер диктует". Это значит, что только точная копия всех файлов, существующих на мастер стороне, должна существовать в системе.

Если какой либо файл удален, изменен или переименован, то он немедленно будет загружен опять с мастер узла. То есть абсолютно все узлы и абсолютно все файлы в системе соответствуют мастер копии за исключением дополнительных "личных" файлов на R/O узлах, которые, например, были созданы копированием мастер копии пользователем вручную для редакции личной копии или фиксирования некой версии файла, либо файлы с новым именем, которые были переименованы пользователем вручную. Но даже в случае переименования, файл со старым именем будет немедленно загружен снова с мастер узлов или с r/o узлов, содержащих точную копию оригинала со старым именем файла. Потому как никаких разногласий в системе существовать не должно.

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

Принципы обнаружения других узлов

BTSync использует несколько способов нахождения других узлов - партнеров.

Что делает сервер ретрансляции?

Серверы ретрансляции (релейные серверы) помогают обойти файрвольные состояния на одном или нескольких узлах.

DHT помогает, когда трекер серверы не работают или отсутствуют (например, в вашей конфигурации).

Заметка: Если вы соединены с некоторым узлом через релейный сервер, то вы увидите имя узла таким как он назван самим узлом, но его IP адресом и портом будет адрес и порт релейного сервера, а не реальный адрес самого узла. В этом смысле, релейный сервер ведет себя как прокси сервер и он скрывает сам узел от остальных.

Что делает трекер сервер?

BTSync трекер это то же самое, что и BitTorrent трекер, он почти не делает никакой работы.

Для каждой комбинации партнеров и синхронизируемых папок он хранит:

После того, как два партнера были представлены друг другу трекеру больше нечего делать. Если трекер исчезнет после того, как партнеры связались друг с другом, в этом нет проблемы. Это DNS имя (компании BT) указывает на три независимых сервера, которые (вероятно) будут обмениваться информацией.

Примечание: Это, потенциально, поднимает вопрос безопасности. Поскольку эти BT серверы фактически жестко впаяны в саму программу и пользователь не может их всех удалить по соображениям безопасности, то существует потенциальная возможность, что BTSync может передавать информацию обо всех узлах на некоторой синх-папке 3-й партии, и это совсем не желательно и является довольно странным дизайном, так как у пользователя физически нет возможности блокировать эти серверы по соображениям безопасности кроме как блокировать их с помощью файервал (firewall) или другими методами.

Проблема здесь в том, что вы действительно не знаете, как BT собирается использовать полученную от вас информацию, независимо от того, сколько обещаний они вам дают о том, что они не собирают ничего, кроме самых основных вещей, необходимых для соединения узлов и не отправляют любой информации из этого 3-й партии. И даже если они сделают публичное заявление, что они не отправляют никакой информации, в том числе хэшев, каким-либо третьим лицам, не ясно, в какой степени вы можете доверять такому заявлению.

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

Учитывая, что BTSync не является открытым исходным кодом, как вы можете знать, то, что они могут, или в действительности делают с информацией, которую они получают от вашего узла?

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

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

Я тестировал связь известными узлами на Windows-7, и она для меня работает отлично. Я также тестировал ситуацию когда только одна сторона знала адрес другой и это также работает (в зависимости от брандмауэра [firewall]).

Помните, что вы должны открыть UDP порты, а не TCP порты, и в обычных случаях сказать ОБОИМ клиентам, публичные IP адреса других партнеров, чтобы они могли работать вместе, чтобы проткнуть дыру через NAT или отслеживать соединения.

Если публичные IP-адреса являются динамическими, вы можете использовать такие сервисы, как dyndns.org чтобы получить постоянное DNS имя.

О минимальных требованиях к брандмауэру [firewall]

Ладно, о минимальных требованиях брандмауэра ...

Реле и трекер обнаруживаются с помощью DNS, это текущие настройки для реле и трекера.
Обратите внимание на то, что TTL (время жизни) менее 5 минут в обоих случаях, это предупреждение, которое они должны дать, чтобы их изменить.

;; ANSWER SECTION:
r.usyncapp.com. 203 IN A 67.215.231.242
r.usyncapp.com. 203 IN A 67.215.229.106

;; ANSWER SECTION:
t.usyncapp.com. 258 IN A 54.225.100.8
t.usyncapp.com. 258 IN A 54.225.196.38
t.usyncapp.com. 258 IN A 54.225.92.50

Нормальным режимом работы является нахождение партнеров с помощью трекера и использование прямых связей между партнерами для передачи данных. Все данные передаются с использованием UDP-пакетов.

Ваш BTSync использует порт, сконфигурированный, скажем как 20001.
Партнер использует порт, сконфигурированный, скажем как 20002.
Трекер настроен на использование порта 3000.
Реле настроен на использование порта 3000.

Требования такие:

Это предполагает, что ваш firewall использует обычный метод "тайм-аут", чтобы заметить запрошенные ответы. Проблема в том, что firewall не увидит запрос на первый ответ, потому как он путешествует через трекер. Он не должен делать ничего "нежелательного", когда он заметит этот «ответ».

Если ваш firewall поломан таким путем, тогда незапрошенные пакеты должны быть разрешены в обоих направлениях между UDP портами 20001 и 20002.

Если ваш firewall не может быть починен, соединения к реле должны быть открытыми для всех партнеров, которым необходимо с вами общаться.

Если вы хотите использовать DHT, вы должны иметь возможность принимать незапрошенные пакеты на ваш порт 20001 от любого адреса.

Если вы введете список известных партнеров (Преференции папки [Folder Preferences] - Свойства [Properties] - Использовать известные серверы [Use predefined hosts]), тогда вы можете отключить доступ к трекеру; тогда нет необходимости для каких-либо пакетов быть отосланными трекеру.

BTSync Трюки

Исключение некоторых файлов и/или папок из синхронизации

Если вы хотите исключить некоторые файлы из синхронизации, так что они не загружаются на ваш узел и не распространяются на другие узлы, одним из способов является использование файла .SyncIgnore и введение имен всех файлов и/или папок, которые вы хотите исключить. Этот метод является гораздо более предпочтительным и рекомендованным по сравнению с другими.

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

Все файлы, которые либо изменены, удалены, или переименованы, помечаются в базе данных как "не скачиваемые" и "не-распространяемые" и, по сути, становятся покойниками для btsync. Он их больше трогать не будет, что бы вы не делали. Более того, даже если вы удалили или переименовали файл, то его имя все равно остается в базе данных и любые операции над файлом с этим именем в будущем будут просто и тупро проигнорированы программой.

Этот способ, как правило не является рекомендованным методом предотвращения синхронизации файлов потому как результатом будут также некоторые нежелательные последствия, как, например, даже если вы полностью синхронизированы со всеми остальными файлами, то в закладке Устройства (Devices), даже когда синхронизация полностью закончена, вы увидите, что некоторый размер для загрузки все равно останется, хоть ничего и не загружается. Это просто является признаком того, что вы что-то изменили с какими-либо файлами. Либо изменили права доступа для записи в них.

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

См: Восстановление первоначального статуса синхронизации некоторых файлов, которые более не синхронизируются

Но зачем вам все это надо? - Вот в чем вопрос.

Использование файла .SyncIgnore для исключения некоторых файлов из синхронизации

Правильным и рекомендуемым методом исключения некоторых файлов и/или папок из синхронизации является метод использования файла .SyncIgnore, который находится в главной папке синхронизации. В этом случае, BTSync исключит все эти файлы из списка загружаемых и распространяемых и правильно подсчитает полный размер всех файлов и выдаст правильные статистики об остающемся объеме файлов все еще подлежащих загрузке на закладке Устройства (Devices) и т.д.

.SyncIgnore является обычным текстовым файлом (в кодировке UTF-8), содержащий название одного файла или папки в отдельной строке.

Вы можете использовать специальные символы "*" и "?" в .SyncIgnore файле.

Примеры:

Последствия .SyncIgnore являются более тонкими, чем это может выглядеть на первый взгляд и файловые спецификации не являются интуитивно понятными и ведут себя несколько иначе, чем это происходит в О/С.

В следующих правилах мы будем использовать понятие уровень папки, что то же самое, что и глубина папки в пути к файлу. 1-й уровень является уровнем главной (корневой) папки. 2-й уровень является подпапкой в основной папке, и так далее.

Правила

В чем смысл и функции файла .SyncIgnore?

Вопрос .SyncIgnore, который был задан на форуме btsync:

Означает ли это "не обновлять этот файл от мастер (r/w) узла?" Или это означает "не распространять этот файл другим R/O узлам? Или и то и другое?"

Ответ:

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

(RomanZ, Sync Support)

Это подразумевает, что, если другие узлы не имеют те же файлы/папки в своих .SyncIgnore Файлах, как и данный конкретный узел, то они все равно получат их от других узлов (r/w or r/o), которые не исключают эти файлы в их .SyncIgnore.

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

Но если вы хотите игнорировать те же файлы на всех узлах, тогда каждый из них должен иметь точно такие же файлы в своих .SyncIgnore файлах.

"Сражающиеся" r/w узлы и волшебное появление дубликатов файлов и папок

Наконец, есть интересный случай r/w узлов, "сражающихся" друг с другом (в случае, если у вас есть несколько r/w узлов на некотором ключе [папке синхронизации]). Если вы удалите некоторые файлы или папки на одном r/w узле, это ничего не изменит в случае, если у вас есть несколько r/w узлов, и, особенно, если некоторые из них в тот момент не находятся в сети.

Даже удаление его локально, не помешает ему снова загрузиться в течение нескольких секунд от других мастер-узлов, если они находятся на линии, и даже хуже, если вы являетесь единственным r/w узлом на линии и удалите какой-либо файл или подпапку и убедитесь, что все работало нормально, вы можете не понять, что это всего-лишь иллюзия.

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

Потому что он все еще существует на других мастер (r/w) узлах. Как только они появятся, ваши удаленные или старые версии переименованных файлов или папок будут загружены от них снова.

Необходимо помнить, что все полностью синхронизированные r/w узлы содержат совокупный набор файлов, который создается в результате операции объединения [union]. Все файлы или папки, которые отсутствуют на некоторых узлах будут отправлены им узлами, у которых эти файлы есть.

Здесь есть некоторые тонкости и отличия поведения в зависимости от того присутствуют ли все существующие r/w узлы в сети. Потому как если они все находятся на этом хэше, то некоторые вещи произойдут иным образом и более логично и предсказуемо потому как узлы, на которых произошло удаление или переименование файлов или папок отсылают соответствующее сообщение об этой операции и все может произойти вполне логично. Но если некоторые из них не были на этом хэще в тот момент, то все происходит совершенно по иному и полностью нелогично по сравнению с вашими ожиданиями.

[Заметка: Мы здесь представляем проблему только в общих чертах и не можем гарантировать, что наше понимание является верным во всех возможных случаях и условиях. Попытка обсудить этот вопрос и такое поведение была сделана на BTSync форумах, но, к сожалению, полная картина во всех возможных вариантах не была представлена компетентными представителями BT. Так, что вам будет необходимо потратить свое собственное время на то, чтобы выяснить все варианты того, что происходит в вашем конкретном случае в зависимости от того все ли r/w узлы находятся на этом хэше в тот момент.]

И еще более интересное поведение наблюдается при переименовании некоторых подпапок. Что произойдет, если ваш r/w уже был синхронизирован с другими r/w узлами является то, что теперь у вас есть две различных папки с тем же содержанием, но с разными именами, одна, со старым именем папки на других r/w узлах, а другая, с новым именем на узле, где она была переименована, и, так как ваша новая папка содержит точно те же файлы, что и старая, то она начнет немедленно загружаться на другие r/w узлы, как новая папка, а остальные r/w узлы отошлют Вам копию папки со старым именем. После того как процесс синхронизации для этих папок будет завершен, ВСЕ r/w узлы будут иметь две копии той же папки с точно таким же содержанием, но с двумя разными именами папок.

И мы это подтвердили в реальной ситуации, когда мы впервые встретились с этой проблемой, совершенно не веря своим глазам, что такое волшебство вообще возможно. Но, как выяснилось позже, для этого есть вполне логическое объяснение и оно связано с неверной разработкой логики программы, которая включает в себя странное правило "пользователь знает лучше, что он делает", и, таким образом, немедленно возникает проблема конфликта программной логики с логическими противоречиями поведения программы, созданными действиями пользователя.

И, что даже еще более интересно, как только вы заметите, что у вас почему-то есть 2 копии одного и того же содержимого папки, но с другим именем папки на вашем узле, вы можете попробовать удалить папку с тем именем, которое вам не нравится, даже не подозревая, что она приехала к вам от другого r/w узла, и будете задавать себе вопрос "откуда она взялось?". Но ваше удаление этой папки будет тщетным усилием, если другие узлы имеют эту папку в своей коллекции. Они просто отправят его к вам снова и снова и снова, пока, как говорят, у вас "глаза на лоб полезут".

Таким образом, вам просто абсолютно необходимо использовать файл .SyncIgnore если вы решите удалить или переименовать некоторые файлы / папки в случае если у вас есть несколько r/w узлов, и некоторые из них уже синхронизированы с теми папками или файлами, которые вы удалили или переименовали. Кроме того, все остальные узлы должны также иметь их в своих собственных .SyncIgnore файлах и, более того, они могут даже и не подозревать, что у них есть некоторые дубликаты файлов или папок в результате действий на других r/w узлах. А вот это уже, как говорят, "не смешно" и может привести к некоторым крайне нежелательным последствиям так как пользователи, возможно, будут продолжать, например, редактировать некоторые файлы, каждый смотря на другую версию, что может привести к совершенно нелепым последствиям.

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

Использование .SyncIgnore.Master файла

В целях предотвращения некоторых необычных или странных эффектов, возникающих в результате удаления или переименования некоторых файлов или папок (см.: "Сражающиеся" r/w узлы и волшебное появление дубликатов файлов и папок ), что вы можете сделать, так это создать файл .SyncIgnore.Master на одном из r/w узлов.

Кроме того, для того, чтобы все узлы были в согласованном состоянии и содержали точно ту же самую информацию, как и все другие узлы, в случае, если некоторые файлы или папки, исключены из синхронизации по всякого рода причинам, например, в случае если они содержат личную информацию, или являются временными файлами для заметок, которые нет необходимости распространять на другие узлы, ВСЕ узлы должны иметь то же самое содержание в .SyncIgnore файле. В противном случае, некоторые из них будут обновлены с ненужными или нежелательными файлами и распространят их на другие узлы.

Примечание: файл .SyncIgnore не распространяется между узлами автоматически. Потому что содержание этого файла зависит от О/С и его версии для Windows и Linux несовместимы.

Но .SyncIgnore.Master БУДЕТ автоматически обновляться и распространяться, как и любой другой файл, если любой из r/w узлов его изменил или дополнил.

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

Единственное, что необходимо иметь в виду, так это факт того, что содержание этих файлов зависит от О/С с точки зрения символов разделения папок ("\" и "/"), а также с точки зрения знаков пропуска (" " - на Windows или "\ " на Linux).

Это означает, что все узлы могут быть автоматически информированы о «последней и самой лучшей» версии .SyncIgnore с помощью файла .SyncIgnore.Master. Таким образом, они могут просто скопировать / вставить его содержимое в файл .SyncIgnore и сделать некоторые изменения для версии О/С которую они используют.

Это должно работать отлично и предотвратить распространение всяких нежелательных файлов или подпапок. Кроме того, все дискуссии и споры о том, необходимо ли автоматически распространить .SyncIgnore файл решаются просто и без единого усилия со стороны разработчиков BTSync, и все работает как есть.

И что еще более важно для публичного распространения, где один узел не имеет ни малейшего представления о других узлах, и где информация может обновляться динамически, в любой момент, могут возникнуть некоторые желательные изменения в .SyncIgnore файле. Но как может публика знать о "последней и самой лучшей" версии, если .SyncIgnore не распространяется автоматически от мастер-узлов? А если он распространяется автоматически, то последняя его мастер версия может "наступить" на вашу локальную версию, которая соответствуют вашему личному мнению о содержании или распространении с вашего узла, на что вы имеете право независимо от того, кто и что об этом думает.

Что будет показано в закладке Устройства если некоторые файлы исключены с помощью .SyncIgnore?

Вопрос: Что будет показано в закладке Устройства (Devices) если некоторые файлы исключены с помощью файла .SyncIgnore? Будет ли там по-прежнему показано, что узел полностью синхронизирован? Или будет показано, что некоторый размер все еще остается для загрузки?

FAQ рекомендует иметь одинаковые .Syncignore файлы на всех узлах-партнерах.

Действительно ли следующее?:

Если некоторые файлы исключаются, то BTSync не будет включать их в суммарный размер файлов и в общий размер данных в UI (пользовательском интерфейсе). Кроме того, он покажет, что партнер полностью синхронизирован, когда все НЕ исключенные файлы синхронизировались.

Если syncignore файлы отличаются, то следующий сценарий вступает в силу:

Скажем, у нас есть ПК А и ПК Б с некоторой синхронизированной папкой.

ПК А игнорирует файлы *.abc. У него также есть куча других файлов, а также несколько файлов .abc. После того как синхронизация закончена, ПК А будет показывать, что он полностью синхронизирован с ПК Б, количество файлов и объем будет включать в себя все файлы, кроме .abc.

ПК Б имеет кучу файлов, а также несколько файлов .abc [но на нем *.abc не исключены в .SyncIgnore файле]. После того как синхронизация будет закончена, ПК Б покажет, что ему все еще необходимо отослать несколько файлов на ПК А, и их количество и объем будут равны сумме всех *.abc файлов, которые находятся на ПК Б.

Это означает, что если вы видите некоторый узел-партнер в вашем GUI, который показывает, что все еще остаются некоторое файлы, которые он должен отослать, то они, возможно, находятся в его .SyncIgnore файле.

Другим случаем когда вы видите некоторого партнера не полностью синхронизированным, но никакой отсылки не происходит и количество, остающееся для отсылки, не изменятся, скорее всего будет результатом того, что он либо удалил некоторые файлы, либо их изменил, либо переименовал, и он является r/o узлом. Потому как все такие файлы, в соответствии с логикой программы, существующей в настоящий момент (в момент версия 1.3.105 включительно), не подлежат распространению и более не будут загружаться на узел, на котором произошли эти изменения.

Что это значит, если некоторый узел ранее показывал, что он полностью синхронизирован, а затем он просто продолжает показывать, что есть еще некоторый объем подлежащий отсылке на его узел, и с тех пор более не показывает, что он полностью синхронизирован?

Это может означать:

1) Удаленный узел является R/O узлом и некоторые файлы на нем были удалены или изменены.

2) Удаленный узел игнорирует некоторые файлы (в своем .SyncIgnore файле) и просто их не принимает.

3) Удаленный узел является мобильным устройством и синхронизирует только часть файлов из-за селективной синхронизации.

4) Возникла некоторая проблема, которая предотвращает синхронизацию файлов полностью (разрешения доступа к файлам, случай ошибки с заглавными буквами, заблокированные файлы (некоторый процесс их использует и запрещает доступ к ним другими процессами), на диске больше нет свободного пространства, и т.д.)

Вопрос: Означает ли это, что пользователь на r/o узле удалил, изменил или переместил некоторые файлы из пути доступа к папке синхронизации?

Ответ: Да. Одним из случаев является тот, когда пользователь изменяет / удаляет файл на RO партнере и настройки запрещают его повторную синхронизацию.

[Ответы, предоставленные RomanZ из группы поддержки BTSync]

Исключение некоторых файлов из синхронизации с помощью модификаций

Вы также можете исключить некоторые файлы из синхронизации на R/O узлах после того как они были загружены, либо просто удалив их, в этом случае вы больше не будете получать никаких обновлений этих файлов, либо их переименованием, либо изменив их содержание (например путем редакции).

Но этот трюк не совсем правильное решение. Прежде всего, это не помешает исходной загрузке этих файлов. Затем, если в какой-то момент, некоторые другие файлы по какой-либо причине перестали загружаться на ваш узел, и, если вы исключили некоторые файлы с помощью трюков модификации, кроме как переименованием файла, и вы решили восстановить свой первоначальный режим обновления / распространения через Параметры папок (Folder Preferences) -> вкладку Дополнительно (Advanced) -> флажок "Восстановить измененные файлы в оригинальной версии" (Restore modified files to original version), то все эти файлы, которые были исключены с помощью трюка модификации, будут восстановлены в их исходном состоянии, то есть точные копии файлов на главном узле.

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

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

BTSync - различные примечания

Что означают значки устройств?

Значки, которые появляются слева от имени устройства в закладке Устройства (Devices) означают следующее:

BTSync - значок прямого соединения Прямое подключение - BitTorrent Sync может установить прямое соединение с этим устройством

BTSync - косвенное (релейное) соединение Косвенное (ретрансляционное) соединения - BTSync не удалось установить прямую связь с этим устройством, и поэтому он подключился через промежуточный релейный сервер. Желательно иметь прямые соединения, где это возможно, так как это, как правило, обеспечивают более высокую скорость передачи по сравнению с ретрансляционным соединением.

Если вы измените, удалите или переименуете некоторые файлы

Если вы измените, удалите или переименуете некоторые файлы в любых подпапках, последствия будут зависеть от того, сделали вы это на мастер (R/W) узле или ведомом (r/o) узле. Для более подробного описания, см:

Таблица поведения BTSync

Как правило, если вы сделали это на (r/o) узле, то вы больше не будете получать обновления о любых изменениях или обновлениях этих файлов. С того момента, они будут рассматриваться как не-синхронизируемые или "игнорируемые".

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

Но если вы сделали это на (r/w) узле, то поведение btsync будет вполне предсказуемым, таким же образом, как если бы вы это сделали в файловой системе О/С.

Архивация обновлений файла: Как выяснить, какие файлы были обновлены или изменены на (r/w) узлах

BTSync может сохранять историю обновлений. Всякий раз, когда некоторый файл изменен и его новая версия загружается, последняя копия, непосредственно перед обновлением, будет сохранена в папке .SyncArchive на том же месте в иерархии подпапок как и исходный файл. К его имени файла будет добавлено число, соответствующее номеру версии файла.

Существует также флажок "Сохранить удаленные файлы в SynchArchive" (Store deleted files in the SynchArchive). Он доступен, нажатием на закладке Папки (Folders) щелкнув правой кнопкой мышки на папке, и выбрав "Показать предпочтения папки" (Show folder preferences), -> Свойства (Properties), а затем нажав на флажок "Сохранить удаленных файлов в SynchArchive". Если этот флажок не установлен, предыдущие версии не будут сохраняться.

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

Существует параметр, который может быть изменет - sync_trash_ttl на вкладке Настройки (Preferences). Нажмите на кнопку Дополнительно (Advanced) внизу, а затем вы можете изменить количество дней, в течении которых вы желаете сохранить ваши предыдущие версии. После этого количества дней, самые старые файлы удаляются автоматически.

Как BTSync знает о новых файлах?

BTSync использует 2 механизма для обнаружения новых файлов в синхронизации папок:

1) Системные уведомления. Очень быстрый метод, но он не полностью надежен и практически не зависит от механизма уведомления О/С. Чтобы убедиться, что все изменения будут обнаружены, есть второй способ:

2) Полное сканирование папки каждые 10 минут (изменяемый параметр).

(RomanZ, Sync Support)

Обычно, на Windows, и на некоторых последних версиях Linux btsync знает о новых файлах, обновленных или удаленных файлах в течение нескольких секунд. Затем, после еще нескольких секунд, как правило, в течение минуты или около того, он отсылает эти файлы, или уведомления об их изменениях на все узлы, на которых этот файл является обновляемым.

Для чего нужны файлы .SyncID, .SyncIgnore, .SyncPart, .SyncTemp .SyncOld и .!Sync и папка .SyncArchive?

При добавлении новой папки синхронизации в BitTorrent Sync ряд скрытых файлов / папок автоматически создается в этой папке для следующих целей:

.SyncID = Файл, содержащий уникальную, внутреннюю "Идентификацию" папки. Этот файл не должен быть изменен или удален вручную. Если вы это сделаете, папка больше не будет узнаваться программой и вам будет выдано не совсем приятное сообщение об ошибке.

.SyncIgnore = Файл, редактируемый пользователем, позволяющий "исключить" определенные файлы / подпапки из синхронизации.

.SyncArchive = BTSync, по умолчанию, не будет на самом деле удалить любые из ваших файлов / папок. Если соответствующий файл / папка удаляется на другом устройстве, он просто "переедет" в папку .SyncArchive на всех других устройствах, а не удален безвозвратно.

(В версиях программы до v1.1.40 эта папка называлась .SyncTrash и позже была переименована в .SyncArchive, так как теперь эта папка хранит все местные файлы, удаленные на другом узле)

При изменении файла, отсылает ли BTSync весь файл снова, или просто ту его часть, которая была изменена?

Файлы размером меньше, чем 4 Мб отсылаются вновь в полном объеме, когда изменения обнаруживаются.

Однако, файлы большего размера, разбиваются на "куски" данных размером в 4 MB, и, если изменен только один кусок, но остальные не изменены, только измененные куски будут отосланы (вместо всего файла).

Источник:
BitTorrent Sync FAQ *unofficial*
http://forum.bittorrent.com/topic/17782-bittorrent-sync-faq-unofficial/

Как долго файлы хранятся в .SyncTrash / .SyncArchive?

Начиная с версии v1.1.30, удаленные файлы хранятся в .SyncArchive (или .SyncTrash до v1.1.40) в течение 30 дней по умолчанию, после чего они будут автоматически удалены.

Вы можете изменить этот период, регулируя изменив параметр "sync_trash_ttl".

Какие данные собирает BitTorrent Inc, когда я использую BTSync?

В соответствии с BitTorrent Inc, "Есть 3 точки соприкосновения с инфраструктурой BitTorrent: трекер, реле (ретранслятор), и сервис проверки обновлений программы. Если вы не используете ни одну из них - мы не сможем получить какую-либо информацию о вас."

Более подробную информацию о том, какие данные видит BitTorrent Inc, пожалуйста, см. эту тему

Источник:
BitTorrent Sync FAQ *unofficial*
http://forum.bittorrent.com/topic/17782-bittorrent-sync-faq-unofficial/

Примечание: все это не так просто, как оно выглядит на бумаге. Дело в том, что в btsync использует несколько BitTorrent Inc трекеров, которые "впаяны" или жестко запрограммированы в программу, или существуют в базе данных или различные файлы конфигурации. Одним из них является r.usyncapp.com.

Это означает, что независимо от того, сколько бы кто-либо вам не говорил, что если вы выключите BT трекеры, они "ничего не собирают", сколько им можно доверять, особенно в контексте агентств, осуществляющих глобальную слежку, типа АНБ, некоторые утверждают, с которыми, как некоторые утверждают, компания фактически кооперирует? В принципе, даже если вы отключите все, что угодно в файлах конфигурации, они все еще, на основании чисто технических причин, могут подключиться к своим серверам и просто переключить один флажок в btsync, возможно, даже временно, а затем вы в основном становитесь полностью открыты к тому, что они хотят делать на вашем узле.

См: О минимальных требованиях к брандмауэру [firewall]

picosync / workingDraft
https://github.com/picosync/workingDraft/wiki/Protocol

malwr analysis
https://malwr.com/analysis/NjUwMjM5YzJlNDVhNGJhZDhhZDY1NTg1MzQyYzAyYjI/