Поиск по сайту:

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


Статус: устарело

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

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

Смотрите вместо этого:

Введение

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

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

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

Установить BitTorrent-синхронизацию

Для начала нам нужно установить 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 выбирал случайный порт при каждом запуске. Если вы настраиваете брандмауэр для своего сервера (что настоятельно рекомендуется), вы, вероятно, захотите определить определенный порт.

Следующий вопрос касается настройки 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 chmod 775 /shared

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

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

<пред>

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

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

sudo chmod g+s /shared

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

<пред>

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

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

rm /shared/test*

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

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

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

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

<пред>

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

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

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

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

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

<пред>

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

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

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

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

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

<пред>

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

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

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

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

На первом компьютере нажмите кнопку «Добавить папку» в правом верхнем углу. Появится окно, позволяющее выбрать каталог для общего доступа:

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

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

Нажмите кнопку «Добавить», когда вы выполните эти шаги. Это добавит нашу папку в интерфейс и даст вам несколько кнопок сбоку для управления этой папкой.

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

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

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

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

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

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

<пред>

Как только вы перейдете к интерфейсу второго сервера, снова нажмите кнопку «Добавить папку».

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

На этот раз вместо нажатия кнопки «Создать» мы вставим секрет из другого экземпляра в поле «Секрет»:

Нажмите кнопку «Добавить», чтобы создать общий ресурс.

Через мгновение в обоих веб-интерфейсах вы должны увидеть новую информацию в разделе «Подключенные устройства и статус»:

Это означает, что два наших экземпляра 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 и group. Это связано с тем, что служба не может быть уверена, что исходное имя пользователя существует во второй системе.

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

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

<пред>

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

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

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

<пред>

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

<пред>

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

<пред>

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

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

Заключение

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

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

Джастин Эллингвуд