ウェブサイト検索

Ubuntu 12.04でBitTorrent Syncを使用してディレクトリを同期する方法


ステータス: 廃止された

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

  • Ubuntu 14.04にアップグレードします。
  • Ubuntu 14.04からUbuntu 16.04へのアップグレード
  • サーバーデータをサポートされているバージョンに移行する

理由: Ubuntu 12.04は2017年4月28日にサポートが終了(EOL)し、もはやセキュリティパッチやアップデートを受けることはありません。このガイドはもはや維持されていません。

代わりに見る: このガイドは参考としてまだ役立つかもしれませんが、他のUbuntuリリースでは機能しない可能性があります。もし可能であれば、使用しているUbuntuのバージョンに対して書かれたガイドを使用することを強くお勧めします。ページの上部にある検索機能を使って、より新しいバージョンを見つけることができます。

紹介

コンピュータやデバイス間でフォルダやファイルを同期する方法は多くあります。自動的にコンテンツを同期する一つの方法はBitTorrent Syncです。BitTorrent Syncは、ファイル共有のための人気のあるBitTorrentプロトコルに基づいたコンテンツの同期方法です。

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

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

BitTorrent Syncをインストールする

まず、私たちは両方のUbuntu 12.04インスタンスにBitTorrent Syncをインストールする必要があります。サーバーと同期するためにローカルコンピュータにBitTorrent Syncをインストールしたい場合は、ここにバイナリパッケージがあります。

BitTorrent SyncはUbuntu 12.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

「エンター」を押して新しい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ユーザーにアクセスを許可する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 /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 あなたのユーザー あなたのユーザー 6 1月 16 14:36 test -rw-rw-r-- 1 あなたのユーザー btsync 0 1月 16 14:41 test2 

これは適切な機能を得るために大きな助けになりますが、まだ完全ではありません。

続行する前に、作成したテストファイルを削除してください:

rm /shared/test*

ユーザーをbtsyncグループに追加し、ルートユーザーに所有権を与えてください。

上記の方法は多少効果がありますが、BitTorrent Syncで転送されたファイルはbtsyncユーザーおよびグループの所有となります。これは、現時点でサービスによって同期されたファイルは私たちが編集できないことを意味します。

私たちは、ユーザーをbtsyncグループに追加することでこれを変更できます。これにより、btsyncグループによって書き込み可能なファイルを修正できるようになります。これが私たちの望んでいることです。

btsyncグループに使用したいユーザー名を追加してください。

 sudo usermod -a -G btsync あなたのユーザー 

これにより、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 

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

BitTorrent Syncウェブインターフェースにアクセスする

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

再度、同期を設定したい各サーバーでこれを行う必要があります。

自分のドロップレットのIPアドレスにアクセスし、インストール時に設定したポートを続けて入力してください。デフォルトでは、これは8888です:

あなたのIPまたはドメイン:8888

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

開始するためのかなりシンプルなインターフェースが表示されます:

最初のDropletに共有フォルダーを追加する

ウェブインターフェースにいるので、btsyncプロセスが共有フォルダーを登録できるように、それを追加することができます。

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

共有用に設定したフォルダーを見つけてください。私たちの場合、これは/sharedフォルダーです。フォルダーを選択したら、「生成」ボタンをクリックして、そのフォルダーの秘密を生成してください。

生成された秘密は、このフォルダーを別のBitTorrent Syncのインスタンスと同期させることを可能にします。このユニークな値は、両方のサービスが互いに接続するためのパスワードのようなものです。

これらのステップを完了したら、「追加」ボタンをクリックしてください。これにより、私たちのフォルダがインターフェースに追加され、このフォルダを管理するためのいくつかのボタンが側面に表示されます。

今、私たちは「秘密/QR」ボタンにのみ興味があります。これをクリックすると、このフォルダを共有する方法を選択できるボックスが表示されます。

フォルダーへの読み取り/書き込み権限を「フルアクセス」を通じて付与することができます。一方通行での同期、バックアップのような場合は、読み取り権限のみを許可することができます。各種アクセスに提供されるシークレットは異なります。

必要なアクセスの種類に対する秘密をコピーしてください。このチュートリアルではフルアクセスを使用します。

2つ目のドロップレットに共有フォルダーと秘密を追加する

最初のVPSから秘密を得たので、2番目のVPSで作成した共有フォルダーを追加し、その秘密を使ってファイルを同期できます。

まず、最初のサーバーと同じようにウェブインターフェースにログインする必要があります:

 second_ip_or_domain:8888 

2番目のサーバーのインターフェースに到達したら、「フォルダーを追加」ボタンを再度クリックしてください。

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

今回は、「生成」ボタンをクリックする代わりに、別のインスタンスから秘密を「秘密」ボックスに貼り付けます:

「追加」ボタンをクリックして共有を作成してください。

しばらくすると、両方のウェブインターフェースで「接続されたデバイスとステータス」セクションに新しい情報が表示されるはずです:

これは私たちの2つの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およびグループに与えられています。これは、サービスが元のユーザー名が2番目のシステムに存在するかどうかを確認できないためです。

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

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

 sudo dpkg-reconfigure btsync 

設定メニューを進んでいきますが、今回はもっと多くの質問があります。ほとんどの場合、以前の選択肢や、以前に設定されていないパラメータのデフォルトの選択肢を自動的に選択するはずです。跳ばさないようにしなければならない質問の一つは、パスワードの入力を求めるプロンプトです。

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

適切なumaskを設定することで、ファイルが所有者とグループ(ユーザーが所属している)によって書き込み可能になるように、次のように入力します:

002

設定を完了させると、デーモンは新しい設定で自動的に再起動するはずです。この作業を両方のサーバーで完了させたら、一方のサーバーで新しいファイルを作成でき、そのファイルには二番目のホストで正しい書き込み権限が付与されるはずです。

 /shared/write_test にタッチ 

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

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

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

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

結論

サーバーの設定が完了したので、サーバー間でファイルを簡単に転送できます。また、複数のフォルダーを自動的に同期するように設定することもできます。これにより、設定ファイルなどを扱うための興味深いオプションを提供することができます。

アプリケーションは複数のコンピューター間での同期方法がかなり柔軟です。ディレクトリへのアクセスを誰にも共有させないように一度限りの秘密を作成したり、特定のホストとだけ共有したり、モバイルデバイス間で同期したりすることができます。BitTorrent Syncは、ディレクトリ内の.SyncArchiveファイルを通じてアーカイブ版のバージョン管理システムを提供し、他のアプリケーションのために帯域幅を確保するためにレート制限を設けることができます。

ジャスティン・エリングウッドによる

関連記事: