ウェブサイト検索

Unison - Linux 用の究極のローカル/リモート ファイル同期ツール


ファイル同期は、特定のプロトコルに従って 2 つ以上の場所にあるファイルとデータをミラーリングするプロセスです。この情報技術の時代において、ファイルとデータは最も価値のあるものです。ファイル同期により、あらゆる種類の災害が発生した場合や、多くの場所で作業する必要がある場合でも、貴重なデータの 1 つ以上のコピーを常に利用できるようになります。

優れたファイル シンクロナイザーには、以下の機能が備わっている必要があります。

  1. セキュリティ実装としての暗号化同期。
  2. 優れた比率のデータ圧縮。
  3. データの重複をチェックするための完璧なアルゴリズムの実装。
  4. ファイルソースの変更を追跡します。
  5. スケジュールされた同期。

そのようなツールの 1 つがユニゾンです。この記事では、「ユニゾン」について、その特徴や機能などについて詳しく説明します。

ユニゾンって何?

Unison は、コンピュータやストレージ デバイスなど、2 つ以上の場所の間でデータを同期するのに役立つクロスプラットフォームのファイル同期アプリケーションです。

ユニゾンの特徴

  1. 一般公衆利用許諾書 (GPL) に基づいてリリース
  2. オープンソースとクロスプラットフォームで利用可能 (Linux、Unix、BSD、Windows、Mac)
  3. 最後に変更された場所に関係なく、異なるマシン間で同じバージョンのファイルを利用できるようにします。
  4. クロスプラットフォーム同期が可能です。つまり、Windows マシンを *nix サーバー経由で同期できます。
  5. 標準プロトコル TCP/IP 経由で通信します。つまり、地理的な場所に関係なく、インターネット経由で 2 台のマシン間で通信が可能です。
  6. スマート管理 - 両方のソースでファイルが変更された場合に競合を表示し、ユーザーに表示します。
  7. 安全な SSH 接続 – 暗号化されたデータ転送。
  8. ここでは rsync アルゴリズムが展開され、変更された部分のみが転送されて上書きされます。したがって。実行もメンテナンスも高速です。
  9. 本質的に丈夫
  10. 「Objective Caml」プログラミング言語で書かれています。
  11. 成熟していて安定しているため、積極的な開発は必要ありません。
  12. これはユーザーレベルのプログラムです。つまり、アプリケーションにはスーパーユーザー特権は必要ありません。
  13. 明確かつ正確な仕様で知られています。

Linux への Unison のインストール

現在の安定版リリース (Unison-2.40.102) は、以下のリンクからダウンロードできます。

Unison 2.40.102 安定版をダウンロード

あるいは、以下に示すように、apt または yum コマンドを使用して「Unison 」をリポジトリで使用できる場合は、ダウンロードしてインストールすることもできます。

Debian/Ubuntu/Linux Mint の場合

Ctr+Alt+T」を使用してターミナルを開き、ターミナル上で次のコマンドを実行します。

sudo apt-get install unison
RHEL/CentOS/Fedora の場合

まず、EPEL リポジトリを有効にして、次のコマンドを使用してインストールします。

sudo yum install unison

: 上記のコマンドは、GUI を使用せずに Unison をインストールします。 GUI サポートを使用して Unison をインストールする必要がある場合は、以下のコマンドを使用して「unison-gtk」パッケージ (Debian ベースのディストリビューションでのみ利用可能) をインストールします。

apt-get install unison-gtk

ユニゾンの使い方

Unison は、ディレクトリ ツリー内の一連のファイルを、同様の構造を持つ別の場所 (ローカル ホストまたはリモート ホストなど) に同期するために使用されます。

ローカルファイルの同期

デスクトップの下に 5 つの ファイルを作成し、それをホーム ディレクトリの「desk-back」という名前のフォルダに同期しましょう。

cd Desktop/
touch 1.txt 2.txt 3.txt 4.txt 5.txt
ls

1.txt 2.txt 3.txt 4.txt 5.txt
mkdir /home/server/desk-back

次に、「unison」コマンドを実行して、デスクトップ ファイルをホーム ディレクトリの「desk-back」の下に同期します。

unison /home/server/Desktop /home/server/desk-back/
サンプル出力
Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
/home/server/Desktop
/home/server/desk-back
This can happen either
because this is the first time you have synchronized these roots,
or because you have upgraded Unison to a new version with a different
archive format.
Update detection may take a while on this run if the replicas are
large.
Unison will assume that the 'last synchronized state' of both replicas
was completely empty. This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations. See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.
Donations to the Unison project are gratefully accepted:
http://www.cis.upenn.edu/~bcpierce/unison
Press return to continue.[]
...
...
Saving synchronizer state
Synchronization complete at 13:52:15 (5 items transferred, 0 skipped, 0 failed)

同期プロセスが成功したかどうか、/home/server/desk-back の場所を確認してください。

cd /home/server/desk-back/
ls

1.txt 2.txt 3.txt 4.txt 5.txt

リモートファイル同期

リモート ファイル同期の場合、ローカル サーバーとリモート サーバーの両方に同じバージョンの Unison がインストールされている必要があります。次のコマンドを実行して、ローカル Unison が起動し、リモート Unison サーバーに接続できることを確認します。

unison -testServer /home/ravisaive/Desktop/ ssh://172.16.25.125//home/ravisaive/Desktop/
サンプル出力
Contacting server...
[email 's password: 
Connected [//tecmint//home/ravisaive/Desktop -> //tecmint//home/ravisaive/Desktop]

上記の結果は、リモート サーバーが正常に接続されたことを示しています。次のコマンドを使用してファイルを同期します。

unison -batch /home/ravisaive/Desktop/ ssh://172.16.25.125//home/ravisaive/Desktop/

GUIユニゾンの実行

最初のステップはプロファイルの設定です。プロファイルの名前、同期対象、ソースと宛先の場所などの基本情報を設定する必要があります。

Unison GUI を起動するには、ターミナル上で次のコマンドを実行します。

unison-gtk

プロファイルを作成し、送信元と宛先を入力すると、以下のウィンドウが表示されます。

すべてのファイルを選択し、OK をクリックするだけです。ファイルは、最終更新タイムスタンプに基づいて両方向から同期を開始します。

結論

Unison は、GUI およびコマンド ライン ユーティリティで利用可能な、双方向のカスタム同期を可能にする素晴らしいツールです。 Unison は約束したものを提供します。このツールは非常に使いやすく、特別な労力は必要ありません。テスターとして、私はこのアプリケーションに非常に感銘を受けました。必要に応じて実装できる機能がたくさんあります。詳細については、ユニゾンマニュアルを参照してください。

こちらもお読みください:

  1. ファイルの Rsync (リモート同期)
  2. Rsnapshot (Rsync ベース) ファイル シンクロナイザー

それは今のところすべてです。近いうちにまた別の興味深い記事をお届けする予定です。それまではTecmint にご注目ください。コメントセクションに貴重なフィードバックをお寄せください。