開発者ドキュメント

BitTorrentSyncを使用してUbuntu12.04でディレクトリを同期する方法

ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章


コンピューターとデバイス間でのフォルダーとファイルの同期は、さまざまな方法で実行できます。 コンテンツを自動的に同期する1つの方法は、 BitTorrentSyncです。 BitTorrent Syncは、ファイル共有用の一般的なBitTorrentプロトコルに基づいてコンテンツを同期する方法です。

従来のBitTorrentとは異なり、BitTorrent Syncを使用して共有されるファイルは暗号化され、自動生成される共有シークレットに基づいてアクセスが制限されます。 BitTorrent本体は、公的な方法でファイルを配布するためによく使用されますが、BitTorrent Syncは、セキュリティ対策が追加されているため、デバイス間でファイルを同期および共有するためのプライベートな方法としてよく使用されます。

このガイドでは、2つのUbuntu12.04VPSインスタンスにBitTorrentSyncをインストールして設定する方法について説明します。

BitTorrentSyncをインストールする


まず、両方のUbuntu12.04インスタンスにBitTorrentSyncをインストールする必要があります。 ローカルコンピュータにBitTorrentSyncをインストールしてサーバーと同期できるようにする場合は、バイナリパッケージここを見つけることができます。

BitTorrentSyncはUbuntu12.04に比較的簡単にインストールできますが、デフォルトのリポジトリには含まれていません。 PPA(パーソナルパッケージアーカイブ)を使用して、保守されているBitTorrent Syncリポジトリにアクセスし、通常のaptツールで管理できるようにすることができます。

Ubuntu 12.04には、python-software-propertiesというパッケージにPPAツールが含まれています。これは、aptからダウンロードできます。

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

これをインストールした後、更新されたUbuntuパッケージを含むPPAを追加できます。

sudo add-apt-repository ppa:tuxpoldo/btsync

「Enter」を押して、新しいPPAを追加します。

新しいリポジトリが追加されたら、aptを更新して新しいソースのパッケージインデックスを作成し、BitTorrentSyncソフトウェアをインストールする必要があります。

sudo apt-get update
sudo apt-get install btsync

インストール中の初期構成


インストール段階では、サービスの構成に役立ついくつかの質問が表示されます。 最初の質問は、デフォルトのBitTorrentSyncインスタンスを定義するためにこの設定を行うかどうかを尋ねます。 「はい」を選択します。

セキュリティ上の理由から、BitTorrentSyncを独自のユーザーとグループで運用したいと考えています。 次の質問はbtsyncを選択してください。

次の質問は、インスタンス間の通信に使用するポートについてです。 0で選択をそのままにして、btsyncが起動するたびにランダムなポートを選択するようにすることができます。 サーバーにファイアウォールを構成している場合(これを強くお勧めします)、特定のポートを定義することをお勧めします。

次の質問は、UPNPリクエストの構成について尋ねますが、これは必要ありません。 「いいえ」を選択します。

次に、ダウンロードとアップロードの制限を定義します。 これらのいずれかを制限したくない場合は、デフォルトの0のままにして、最大のスループットを許可します。

次に、サービスを構成するインターフェイスを尋ねられます。 0.0.0.0のままにしておくと、BitTorrentSyncサービスは利用可能なインターフェイスを使用します。 DigitalOceanプライベートネットワークなどの1つのネットワークに制限する場合は、ここで適切なIPアドレスを指定できます。 プライベートネットワークを使用して自宅のコンピューターと同期することはできませんのでご注意ください。

次に、Webインターフェイスにアクセスするためのポートを選択します。 デフォルト値は8888ですが、開いている任意のポートに変更できます。

最後に、ユーザー名とパスワードを選択してWebインターフェイスを保護します。

インストールが完了し、サービスが開始されます。

将来のある時点で構成を変更する必要がある場合は、次を発行することにより、いつでも構成メニューを実行できます。

sudo dpkg-reconfigure btsync

サービスの構成ディレクトリは次のとおりです。

/etc/btsync

メニューシステムによって生成された設定ファイルを手動で編集しないでください。 ただし、メニュー構成でカバーされていない詳細を調整したい場合は、構成をコピーして別の構成のテンプレートとして使用できます。

共有フォルダを設定する方法


フォルダをBitTorrentSyncと同期するには、btsyncユーザーまたはグループがフォルダへの書き込みアクセス権を持っている必要があります。 これを達成するためのいくつかの異なる方法があります。

まず、フォルダを作成しましょう。

sudo mkdir /shared

同期する両方のVPSインスタンスでこれらの手順を完了する必要があります。

btsyncプロセスに完全な所有権を与える


btsyncユーザーにアクセス権を与える1つの方法は、フォルダーの所有権をbtsyncユーザーに与えることです。

sudo chown btsync:btsync /shared

これにより、BitTorrent Syncサービスはこのディレクトリのコンテンツを正しく提供できるようになりますが、通常のユーザーとしてこれに書き込むことはできません。 これはあなたが望むものかもしれませんが、通常はそうではありません。

通常のユーザー所有権とbtsyncプロセスグループの所有権を与える


システムに通常のユーザーが1人しかいない場合は、そのユーザーにフォルダーの所有権を与え、btsyncグループにフォルダーの所有権を与えることができます。

sudo chown your_user :btsync / shared

次に、グループに書き込み権限を付与する必要があります。

sudo chmod 775 /shared

これにより、btsyncサービスがフォルダーにアクセスできるようになります。 ただし、ディレクトリ内に作成されたファイルはすべて、ユーザーとグループが所有します。

たとえば、testという名前のファイルをこのフォルダーに追加すると、そのファイルはユーザーによって完全に所有されます。

 cd/共有タッチテストls-l
  -rw-rw-r-- 1 your_user your_user 6 Jan1614:36テスト

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プロセスによって共有フォルダーに作成されたファイルを編集できます。

ただし、ディレクトリはまだユーザーによって所有されているため、システムに複数のユーザーがいる場合は、これは適切な方法ではありません。 通常のユーザーがフォルダ設定を変更しないように、所有権をrootユーザーに譲渡する必要があります。 また、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

chmodコマンドの最初の「2」は、「g+s」が以前に行ったのと同じ方法でSGIDビットを設定します。 これは、これらのコマンドを組み合わせるためのより簡潔な方法です。

BitTorrentSyncWebインターフェイスへのアクセス


BitTorrent Sync共有用に適切に構成されたフォルダーができたので、Webインターフェースにアクセスして、フォルダーを追加して同期を開始できます。

繰り返しますが、同期を構成する各サーバーでこれを行う必要があります。

ドロップレットのIPアドレスに移動し、続いてインストール時に構成したポートに移動して、Webインターフェイスにアクセスします。 デフォルトでは、これは8888です。

your_ip_or_domain :8888

インストール時に構成した資格情報を使用してサインインする必要があります。 変更しなかった場合、デフォルトのユーザー名はadminです。

開始するためのかなり単純なインターフェースが表示されます。

共有フォルダを最初のドロップレットに追加する


Webインターフェイスが表示されたので、共有フォルダーを追加して、btsyncプロセスが登録できるようにします。

最初のマシンで、右上隅にある[フォルダの追加]ボタンをクリックします。 これにより、共有するディレクトリを選択できるボックスが表示されます。

共有用に構成したフォルダーを見つけます。 この場合、これは/sharedフォルダーです。 フォルダを選択したら、「生成」ボタンをクリックしてフォルダのシークレットを生成する必要があります。

生成されるシークレットを使用すると、このフォルダをBitTorrentSyncの別のインスタンスと同期できます。 この一意の値は、基本的に2つのサービスが相互に接続できるようにするためのパスワードです。

これらの手順を完了したら、[追加]ボタンをクリックします。 これにより、インターフェイスにフォルダが追加され、このフォルダを管理するためのボタンが側面に表示されます。

今のところ、「シークレット/QR」ボタンにのみ関心があります。 これをクリックすると、このフォルダの共有方法を選択できるボックスが表示されます。

「フルアクセス」により、読み取り/書き込み権限のあるフォルダへのアクセスを許可できます。 バックアップのように一方向にのみ同期する場合は、読み取りアクセスのみを許可できます。 アクセスの種類ごとに提供される秘密は異なります。

必要なアクセスタイプのシークレットをコピーします。 このチュートリアルでは、フルアクセスを使用します。

共有フォルダとシークレットを2番目のドロップレットに追加する


最初のVPSからシークレットを取得したので、2番目のVPSで作成した共有フォルダーを追加し、シークレットを使用してファイルを同期できます。

まず、最初のサーバーで行ったのと同じように、Webインターフェイスにログインする必要があります。

second_ip_or_domain :8888

2番目のサーバーのインターフェイスに移動したら、[フォルダの追加]ボタンをもう一度クリックします。

ローカルに作成された共有フォルダを追加します。

今回は、[生成]ボタンをクリックする代わりに、他のインスタンスのシークレットを[シークレット]ボックスに貼り付けます。

「追加」ボタンをクリックして共有を作成します。

しばらくすると、両方のWebインターフェイスで、[接続されているデバイスとステータス]セクションにいくつかの新しい情報が表示されます。

これは、BitTorrentSyncの2つのインスタンスがお互いを検出したことを意味します。 前面のアイコンは、フルアクセスが許可されており、ファイルが両方向に同期されることを意味します。

同期のテスト


同期を構成したので、それが機能するかどうかをテストしてみましょう。

サーバーの1つ(フルアクセスを構成した場合はどちらでも構いません)で、共有フォルダーにいくつかのファイルを追加します。

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とグループに渡されます。 これは、サービスが元のユーザー名が2番目のシステムに存在することを確認できないためです。

最後のステップは、btsyncデーモンに、同期するファイルのファイル権限をbtsyncグループが書き込み可能に自動的に設定するようにすることです。 これは、ユーザーが同期したファイルを編集するためにフルアクセスを提供する場合に必要です。

これは、btsyncデーモンを再構成することで実行できます。 これにより、最初に構成を行ったときに与えられたよりもはるかに多くのオプションが開かれます。 次のように入力して、両方の同期マシンで再構成を開始します。

 sudodpkg-btsyncを再構成します

構成メニューを実行しますが、今回はさらに多くの質問があります。 ほとんどの場合、以前の選択、または以前に設定されていないパラメータのデフォルトの選択のいずれかを自動的に選択する必要があります。 スキップしないように覚えておく必要がある1つの質問は、パスワードプロンプトです。

探しているオプションは、デーモンによって同期されるファイルのデフォルトのumaskです。

次のように入力することで、所有者とグループ(ユーザーが参加している)の両方が書き込み可能なファイルを作成するための適切なumaskを設定できます。

 002 

構成を完了すると、デーモンは新しい設定で自動的に再起動します。 両方のサーバーでこのタスクを完了すると、1つのサーバーで新しいファイルを作成できるようになり、2番目のホストで正しい書き込み可能なアクセス許可が付与されます。

 touch / shared / write_test 

ファイルが同期されると、2番目のホストで次のようなものが表示されます。

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

ファイルには実際のデータが含まれていないため、Webインターフェイスではファイルが同期されていることはわかりません。 ファイルにコンテンツを追加すると、インターフェイスが更新され、同期したファイルの数が表示されます。

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

結論


サーバーを構成したので、サーバー間でファイルを簡単に転送できます。 自動的に同期するように複数のフォルダーを構成することもできます。 これは、構成ファイルなどを処理するためのいくつかの興味深いオプションを提供できます。

このアプリケーションは、複数のコンピューター間で同期する方法にかなり柔軟性があります。 ワンタイムシークレットを作成して、誰もディレクトリへのアクセスを共有しないようにしたり、特定のホストとのみ共有したり、モバイルデバイス間で同期したりすることができます。 BitTorrent Syncは、ディレクトリ内の.SyncArchiveファイルを介してアーカイブバージョン管理システムを提供し、他のアプリケーションで使用可能な帯域幅を確保するためにレート制限を行うことができます。

ジャスティン・エリングウッド
モバイルバージョンを終了