GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでUnisonとファイルを同期する方法

このチュートリアルでは、LinuxにUnisonファイル同期ツールをインストールする方法と、同じシステム上の2つの異なるディレクトリやディスクとローカルエリアネットワーク上の2つの異なるLinuxマシン間でUnisonとファイルを同期する方法について説明します。

ユニゾンの紹介

ユニゾン は無料のオープンソース、マルチプラットフォーム、双方向 ファイル同期ツール。これは、ファイルとディレクトリの2つのレプリカを2つの異なるシステムまたは同じシステム上の異なるディスクに保存するために使用されます。

ファイルとディレクトリのレプリカは個別に変更され、各レプリカの変更を他のレプリカに伝達することで最新の状態になります。

簡単に言うと、ある場所での変更は別の場所に複製され、その逆も同様です。

マルチプラットフォームアプリケーションであるため、異なるオペレーティングシステムで実行されているコンピューター間でファイルとディレクトリを同期できます。

たとえば、Linuxマシンに保存されているファイルをWindowsまたはUnixマシンと同期したり、その逆を行ったりすることができます。ファイルの内容だけでなく、ファイルの所有権と権限も同期されます。

両方のレプリカでコンテンツが異なる場合、競合が発生します。ユニゾンはそのような競合を検出して表示します。その場合、どのレプリカが他のレプリカをオーバーライドするかをユニゾンに指示する必要があります。競合しない更新は自動的に伝播されます。

Unisonは、ローカルエリアネットワークまたはインターネットに接続されているコンピュータの任意のペアでうまく機能します。ファイルは、暗号化されたsshを介してリモートシステムに同期されます 繋がり。

Unisonのもう1つの注目すべき機能は、PPP接続などの低速リンクでうまく機能することです。 rsyncに似ています 、Unisonは、変更されたファイルの部分のみを転送します。

Unisonの組み込みのrsyncアルゴリズムの実装により、既存のファイルへの更新の転送が非常に高速になります。

Unisonはユーザーレベルのプログラムであるため、カーネルを変更したり、どちらのホストでもスーパーユーザー権限を持ったりする必要はありません。

ユニゾンプログラムは、ベンジャミンC.ピアスによって作成されました。 そしてGPLライセンスの下でリリースされます。 GNU / Linux、Windows、Unixプラットフォームで動作します。

LinuxにUnisonをインストールする

Unisonは、多くのLinuxオペレーティングシステムの公式リポジトリのデフォルトリポジトリで利用できます。

UnisonをAlpineLinuxにインストールするには、次のコマンドを実行します。

$ sudo apk add unison

UnisonをArchLinuxと、EndeavourOSやManjaroLinuxなどのその亜種にインストールします。

$ sudo pacman -S unison

Debian、Ubuntu、Linux Mint:

$ sudo apt install unison

Fedora:

$ sudo dnf install unison

CentOS 7:

まず、 [EPEL]を有効にします リポジトリ:

$ sudo yum install epel-release

そして、ユニゾンをインストールします:

$ sudo yum install unison

openSUSE:

$ sudo zypper install unison

unison-gtkという名前のシンプルなグラフィカルインターフェイスもあります CLIよりGUIを好む人のために利用可能です。これは、いくつかのLinuxディストリビューションのデフォルトのリポジトリで利用できます。

Alpine Linuxでは、次のコマンドを使用してUnison-gtkをインストールできます。

$ sudo apk add unison-gui

Arch Linuxとそのバリアントでは、次のコマンドを使用してUnison-gtkをインストールします。

$ sudo pacman -S unison-gtk2

Debianベースのシステムを使用している場合は、次のコマンドを使用してインストールします。

$ sudo apt install unison-gtk

2つの異なるシステム間でファイルを同期する場合は、同期を維持するすべてのシステムにUnisonをインストールする必要があることに注意してください。また、両方のシステムで同じバージョンを使用することをお勧めします。

LinuxでUnisonとファイルを同期する

Unisonは、次の3つの異なるモードで使用できます。

  1. 同じマシンの異なるディレクトリに保存されているファイルを同期する
  2. 同じマシン上の異なるディスクに保存されているファイルとディレクトリを同期します
  3. ローカルマシンとリモートマシン間でファイルとディレクトリを同期します:
    • 直接ソケット接続を介してリモートマシンとファイルを同期します
    • SSHを使用してリモートマシンとファイルを同期します。

1。同じマシンの異なるディレクトリに保存されているファイルを同期する

このガイドの目的のために、2つのルートディレクトリ(つまり、レプリカ)、つまりdirectory1を作成します。 およびdirectory2

$ mkdir ~/directory1
$ mkdir ~/directory2

上記のディレクトリのいずれかにコンテンツを配置します。 directory1内にいくつかのファイルとディレクトリを保存しました 。

directory1の内容を見てみましょう :

$ ls -ltRF directory1/

出力例:

directory1/:
total 7780
drwxrwxr-x 2 sk sk    4096 Oct  2 15:35 dir1/
-rw-rw-r-- 1 sk sk 7779007 Sep 25 16:51 file2
-rw-rw-r-- 1 sk sk  179765 Aug 17 12:51 file1

directory1/dir1:
total 140
-rw-rw-r-- 1 sk sk 141729 Aug  6 22:34 file3

ご覧のとおり、dir1というフォルダーがあります。 および他の2つのファイル、つまりfile1 およびfile2 directory1のルートにあります 。 dir1の内部 、file3という別のファイルがあります 。

そしてdirectory2 レプリカには内容がありません。

$ ls -ltRF directory2/
directory2/:
total 0

unison withコマンドを使用してこれら2つのディレクトリを同期しましょう:

$ unison directory1/ directory2/

directory1の内容を引き続き同期するかどうかを確認するメッセージが表示されます directory2を使用 。 ENTERを押すだけです 鍵。次に、ユニゾンは同期するファイルとディレクトリを確認するように求めます。 ENTERを押します またはfを押します キーを押して、同期するファイルとフォルダを確認します。最後に、yを押します ENTERを押します 更新の伝播を続行するためのキー。

Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	/home/sk/directory2
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

Reconciling changestinue.[<spc>] / file1

directory1     directory2         
dir      ---->            dir1  [f] f
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 15:43:29.75 on 02 Oct 2020
[BGN] Copying dir1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying dir1
[BGN] Copying file1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file1
[BGN] Copying file2 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 15:43:29.81 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 15:43:29  (3 items transferred, 0 skipped, 0 failed)

これで、directory1のすべてのコンテンツが directory2に複製されます 。 lsを使用して確認できます コマンド:

見る?両方のレプリカの内容は同じです。すでに述べたように、両方の場所にあるファイルのアクセス許可とiノード数のファイルとフォルダーも同期されます。上記の出力でも、権限とiノードが同じであることがわかります。

ディレクトリの同期中に出力の矢印に気づきましたか?たとえば、出力の途中に次の行があることに気付くはずです。

directory1     directory2         
dir      ---->            dir1  [f] f
file     ---->            file1  [f] f
file     ---->            file2  [f] f

矢印は方向を示します 変更を伝播する必要があること。この場合、矢印は左から右を指しています。意味-dir1file1 およびfile2 2番目のレプリカ、つまりdirectory2に伝播されます 。

次に、directory2に新しいファイルを作成します レプリカして何が起こるか見てみましょう。

$ touch directory2/file4

コマンドを使用して2つのレプリカを同期します:

$ unison directory1/ directory2/

これで、矢印が右から左を指していることがわかります。これは、2番目のレプリカの変更が最初のレプリカに伝播されることを意味します。つまり、directory2の内容 directory1に複製されます 。

Contacting server...
Looking for changes
Reconciling changes

directory1     directory2         
         <---- new file   file4  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 16:04:08.78 on 02 Oct 2020
[BGN] Copying file4 from /home/sk/directory2 to /home/sk/directory1
[END] Copying file4
UNISON 2.48.4 finished propagating changes at 16:04:08.78 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 16:04:08  (1 item transferred, 0 skipped, 0 failed)

Unisonは、両方のレプリカで更新する必要のあるファイルを自動的に認識します。 Unisonを初めて実行すると、両方の場所にあるすべてのファイルとフォルダーの変更タイムスタンプ、アクセス許可、所有権、およびiノード番号が記録されます。この情報に基づいて、Unisonは、同じコマンドを再度実行したときに更新する必要のあるファイルを決定します。前述のように、すべての情報は~/.unisonの下に保持されます ディレクトリ。

自分で確認するには、既存のファイルの内容を変更します。 file4の内容を変更します directory1にあります レプリカ。

$ echo "Welcome to OSTechNix" > directory1/file4

次に、同期を再開します:

$ unison directory1/ directory2/

今回、Unisonは変更されたファイルを同期します。

Contacting server...
Looking for changes
Reconciling changes

directory1     directory2         
changed  ---->            file4  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 16:05:27.13 on 02 Oct 2020
[BGN] Updating file file4 from /home/sk/directory1 to /home/sk/directory2
[END] Updating file file4
UNISON 2.48.4 finished propagating changes at 16:05:27.14 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 16:05:27  (1 item transferred, 0 skipped, 0 failed)

上記の出力からわかるように、Unisonはfile4を検出しました 最初のレプリカで変更され、2番目のレプリカと同期されました。

両方のレプリカが変更され、それらの内容が異なる場合、変更は競合しています。このような場合、ユニゾンはユーザーに更新を両側に伝播する方法を尋ねます。競合は、以下のように左右の矢印で表示されます。

directory1     directory2         
new file <-?-> new file   file6  [] 

デフォルトのアクションが矢印で示されている場合は、ENTERを押すだけです。 次の変更されたファイルに進むためのキー。このファイルで別のことをしたい場合は、"<"のいずれかを押すことができます または">" 変更を強制的に右から左または左から右に伝播します。

directory1     directory2         
new file <==== new file   file6  [] <

変更を加えたくない場合は、"/"を押すだけです。 このファイルをスキップして、両方のレプリカをそのままにします。

1.1。ユニゾンプロファイル

ユニゾンはプロファイルを使用します 同じマシンまたは2つの異なるマシン上の2つのディレクトリ間でファイルとフォルダを同期します。プロファイルは、ルートディレクトリの実際のパスと同期する必要のあるパス設定を定義するテキストファイルに他なりません。すべてのプロファイルは.unisonに保存されます $HOMEのディレクトリ ディレクトリ。

Unisonを初めて実行するときは、default.prfという名前のデフォルトプロファイル ~/.unisonの下に作成されます ディレクトリ。デフォルトのプロファイルには、設定が定義されていません。したがって、1つのレプリカに保存されているものはすべて、他のレプリカと同期されます。

パス設定のリストを使用してカスタムプロファイルを作成することもできます。これにより、2つのレプリカ全体の同期を回避できます。

カスタムプロファイルを使用して、ユニゾンに指示できます:

  • 特定のファイルとフォルダを同期するには
  • 特定のファイルまたは特定の種類のファイルを同期から無視します。

例を見てみましょう。

2つのレプリカを作成し、いくつかのファイルとフォルダーを1つのレプリカに保存し、もう1つは空のままにします。

$ mkdir ~/directory1
$ mkdir ~/directory2

次に、dir_profile.prfという名前の新しいプロファイルを作成します :

$ nano .unison/dir_profile.prf

同期するファイルとディレクトリのルートディレクトリとパスを定義します。

# Roots of the synchronization
root = /home/sk/directory1
root = /home/sk/directory2 

# Paths to synchronize 
path = dir1
path = file2

2つのルートはどちらの順序でも指定できます。ユニゾンは、他のことをする前に、それらを正規の順序に分類します。パスを指定しない場合、Unisonは、指定されたルートのペアから開始して、2つのレプリカ全体を単純に同期します。 1つ以上のパス設定が指定されている場合、Unisonはこれらのパスとその子のみを同期します。

上記の例では、dir1を定義しました およびfile2 他のルートディレクトリに同期する必要があります。ファイルを保存して閉じます。

プロファイルを作成したら、次のコマンドを使用して同期プロセスを開始します。

$ unison dir_profile.prf

directory1の内容を引き続き同期するかどうかを確認するメッセージが表示されます directory2を使用 。 ENTERを押すだけです キーを押してからfを押します 同期するパスを確認するためのキー。最後にyを押します ENTERを押します 更新の伝播を続行するためのキー。

Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	/home/sk/directory2
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

Reconciling changestinue.[<spc>] | dir1

directory1     directory2         
dir      ---->            dir1  [f] 
file     ---->            file2  [f] 

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 15:42:32.99 on 01 Oct 2020
[BGN] Copying dir1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying dir1
[BGN] Copying file2 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 15:42:33.04 on 01 Oct 2020


Saving synchronizer state
Synchronization complete at 15:42:33  (2 items transferred, 0 skipped, 0 failed)

次に、2番目のレプリカdirectory2に移動します 内容が同期されているかどうかを確認します。

1.1。同期からファイルを無視する

特定のファイルまたは特定の種類のファイルを同期したくない場合があります。その場合、以下のようにプロファイルで無視するファイルを定義できます。

ignore=Name text.*
ignore=Name .*~
ignore=Name *.pdf

その他のサンプルプロファイルについては、こちらを参照してください。

1.2。ローカルファイルとディレクトリをunison-gtkと同期します

コマンドラインに慣れていない方もいらっしゃるかもしれません。ありがたいことに、Unisonにはシンプルなグラフィカルインターフェイスがあり、ユーザーはグラフィカルウィンドウを介してプロファイルを簡単に作成し、プロファイルに基づいてファイルを同期できます。

unison-gtkがインストールされていることを確認してください 上記のインストールセクションに示されているパッケージ。メニューまたはアプリケーションランチャーからunison-gtkを起動します。

最初の起動時にプロファイル選択ウィンドウが表示されます。説明されているようにプロファイルをすでに作成している場合は、そこに表示されます。

プロファイルウィンドウから、新しいルートディレクトリと同期するパスを使用して新しいプロファイルを作成できます。または、既存のプロファイルを編集してルートディレクトリを変更したり、新しいファイルを追加したり、同期するパスを変更したりすることもできます。

プロファイルが不要になった場合は、プロファイルを選択して[削除]をクリックしてください。

新しいプロファイルを作成します。これを行うには、[追加]をクリックします プロファイル選択ウィンドウからボタンをクリックし、進むをクリックします 。

新しいプロファイルに適した名前を簡単な説明とともに入力します:

次に、実行する同期の種類を選択します。 2つのローカルディレクトリ間の同期であるため、「ローカル」を選択しました 。

同期する2つのルートディレクトリを選択します。

ルートディレクトリの1つがFATパーティション上にある場合は、次のチェックボックスを選択します。これは通常、USBサムドライブの場合です。

最後に、[適用]をクリックしてプロファイルを作成します。

新しく作成されたプロファイルがプロファイル選択ウィンドウに表示されます。それを選択し、[開く]をクリックします。

ユニゾングラフィックは、両側で行われる変更を表示します。 Unisonコマンドラインインターフェイスと同様に、デフォルトのアクションもグラフィカルインターフェイスで矢印で示されます。以下のスクリーンショットにあるように、ファイルは左から右に伝播されます。つまり、最初のレプリカから2番目のレプリカに伝播されます。レプリカの内容が同一でない場合、ユニゾンはどのレプリカが他のレプリカをオーバーライドするかについての指示を求めます。

変更の伝播の方向性に満足したら、移動をクリックします。 ツールバーで、または同期->移動を選択します メニューバーから。

同期が正常に完了すると、[ステータス]セクションの下にチェックマークが表示されます。

2。同じマシン上の異なるディスクに保存されているファイルとディレクトリを同期する

2つのディスク間の同期ファイルは上記とまったく同じです。外付けドライブのルートディレクトリの正しいパスを指定していることを確認してください。

これで、同じハードディスク内の2つのディレクトリとローカルシステム上の異なるディスク間でファイルを同期する方法がわかりました。次のセクションでは、2つの異なるシステム間でファイルを同期する方法について説明します。

3。ローカルマシンとリモートマシン間でファイルとディレクトリを同期する

前述のように、Unisonは、直接ソケット接続および暗号化されたSSH接続を介してローカルシステムとリモートシステム間でファイルを同期できます。すでにご存知のように、SSHはソケット方式よりもはるかに優れており、安全です。このガイドでは、SSH方式を使用してファイルを同期します。

openSSHとUnisonを両方のシステムにインストールしていることを確認してください 。また、両方のシステムがSSH経由で通信できることを確認してください。 ローカルシステムとリモートシステムには同じバージョンのユニゾンが必要であることに注意してください

Unisonのバージョンを確認するには、ローカルおよびリモートのシステムで次のコマンドを実行します。

$ unison -version
unison version 2.48.4

ファイルはSSH経由で同期されるため、リモートシステムにunison-gtkがあるかどうかは関係ありません。ユニゾンコマンドラインインターフェイスは、リモートマシンで十分です!ローカルマシンでは、テキストまたはグラフィックのユニゾンインターフェイスを使用できます。

3.1。コマンドラインからローカルマシンとリモートマシン間でファイルとディレクトリを同期する

次に、directory1を同期しましょう ローカルシステムからdirectory1 次のコマンドを実行して、ユニゾンを使用するリモートシステムで:

$ unison directory1/ ssh://[email protected]/directory1/

ここでは、[email protected] リモートシステムのユーザー名とIPアドレスです。

リモートユーザーのパスワードを入力するように求められます。次にEnterキーを押して、directory1の内容を同期することに同意します directoryを持つローカルマシンの リモートマシンの1。次に、fを押します 同期するパスを確認するためのキー。最後にyを押します ENTERを押します 更新の伝播を続行するためのキー。

Contacting server...
[email protected]'s password: 
Connected [//ostechnix//home/sk/directory1 -> //ubuntuserver//home/ostechnix/directory1]
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	//ubuntuserver//home/ostechnix/directory1
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.[<spc>]   Waiting for changes from server
Reconciling changes

local          ubuntuserver       
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 14:49:18.44 on 03 Oct 2020
[BGN] Copying file1 from /home/sk/directory1 to //ubuntuserver//home/ostechnix/directory1
[BGN] Copying file2 from /home/sk/directory1 to //ubuntuserver//home/ostechnix/directory1
[END] Copying file1
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 14:49:18.45 on 03 Oct 2020


Saving synchronizer state
Synchronization complete at 14:49:18  (2 items transferred, 0 skipped, 0 failed)

上記のコマンドは、directory1の内容を複製します ローカルシステムからdirectory1へ リモートシステム上。ここで、新しいファイルを追加するか、既存のファイルを更新して、同期を再試行してください。両側で同様の結果が表示されるはずです。

リモートシステムのホームディレクトリ以外の場所にコンテンツを同期する場合は、リモートホスト名とパスの先頭の間に余分なスラッシュを追加して、リモートディレクトリの絶対パスを指定する必要があります> 以下のように:

$ unison directory1/ ssh://[email protected]//sync/the/files/here/

ディレクトリ全体を同期したくない場合は、 1.1というタイトルのセクションで説明されているように、カスタムプロファイルを作成し、同期するパスを定義するだけです。ユニゾンプロファイル 上記。

3.2。 unison-gtkを使用して、ローカルマシンとリモートマシン間でファイルとディレクトリを同期します

メニューまたはランチャーからUnison-gtkアプリケーションを起動します。 追加をクリックします プロファイル選択ウィンドウのボタンをクリックして、新しいプロファイルを作成します。

[進む]をクリックします。

Unisonプロファイル名とその説明を入力し、[転送]をクリックします。

これが重要なステップです。 "ssh"を選択します [同期の種類]ドロップダウンボックスから。リモートシステムのIPアドレスまたはホスト名とリモートユーザー名を入力します。データ転送のパフォーマンスを向上させるには、[圧縮を有効にする]チェックボックスもオンにします。

同期するローカルディレクトリとリモートディレクトリの場所を選択します。

ディレクトリの1つがFATパーティション上にある場合は、このオプションをチェックする必要があります。これは通常、USBドライブの場合です。

[適用]をクリックして、プロファイルの作成を完了します。

新しく作成されたプロファイルがプロファイル選択ウィンドウに表示されます。プロファイルを選択して、[開く]をクリックします。

リモートユーザーのパスワードを入力するように求められます。パスワードを入力して[OK]をクリックします。

パスワードを入力すると、Unisonはローカルからリモートに伝達される変更を一覧表示します。デフォルトのアクションは矢印で示されます。デフォルトのアクションが必要ない場合は、「左から右」を押します。 または「右から左」 メニューバーのオプションを使用して、どのレプリカが他のレプリカをオーバーライドするかを指示します。最後に、[移動]をクリックします 複製します。

Unisonは、ローカルディレクトリのコンテンツ全体をリモートディレクトリに複製します。同期が完了すると、[ステータス]セクションにチェックマークが表示されます。

両方の場所にあるファイルとディレクトリの内容を確認できます。

上記の方法では、ローカルレプリカのコンテンツ全体がリモートレプリカに同期されます。特定のファイルまたはディレクトリを同期する場合は、 1.1というタイトルのセクションで説明されているように、カスタムプロファイルを作成し、同期するパスを定義します。ユニゾンプロファイル 上記。

3.3。 SSHキーベースの認証を設定する(オプション)

SSHを介して2つの異なるシステム間でファイルを同期する場合は常に、リモートユーザーのパスワードを入力する必要があります。毎回パスワードを入力したくない場合は、以下のリンクで説明されているように、パスワードなしのSSH認証を設定できます。パスフレーズを使用してSSHキーペアを生成しないでください。それ以外の場合は、システム間でファイルを同期するときにパスワードを入力する必要があります。

  • LinuxでSSHキーベースの認証を構成する方法

3.4。 cronジョブの設定(オプション)

cronジョブを使用して、特定の時間間隔でファイルを自動的に同期できます。

たとえば、crontabに次のエントリを追加します 同期を実行するファイル毎日 (00:00に実行されます):

0 0 * * * unison directory1/ ssh://[email protected]//home/ostechnix/directory1/

cronジョブの設定の詳細については、次のガイドを参照してください。

  • cronジョブの初心者向けガイド

助けを得る

基本だけをカバーしました。これは、Linuxシステムで動作する同期をセットアップするのにちょうど十分です。より高度な使用法について知りたい場合は、ユニゾンのヘルプセクションを参照してください。

ローカルドキュメントページを表示するには、次のコマンドを実行します:

$ unison -doc topics

利用可能なトピックのリストは、ローカルドキュメントに表示されます。

Documentation topics:
          about About Unison
         people People
          lists Mailing Lists and Bug Reporting
         status Development Status
        copying Copying
            ack Acknowledgements
        install Installation
       tutorial Tutorial
         basics Basic Concepts
       failures Invariants
        running Running Unison
            ssh Installing Ssh
           news Changes in Version 2.48.4

Type "unison -doc <topic>" for detailed information about <topic>
or "unison -doc all" for the whole manual

トピックに関する詳細情報を表示するには、たとえば、ユニゾンチュートリアル 、実行:

$ unison -doc tutorial

次のコマンドを使用して、ユニゾンのマニュアル全体を表示することもできます。

$ unison -doc all

このガイドの最後に、ユニゾンの公式リンクも添付しました。ドキュメントをよく読んで、Unisonがどのように機能するかをよく理解してください。十分に学んだら、本番環境でUnisonとのローカルおよび/またはリモート同期をセットアップしてみてください。

結論

Unisonを使用すると、どのシステムで何が変更されても、2つ以上のシステムを互いに完全に同期させることが簡単かつ効率的になります。 2つのシステムでファイルとディレクトリのコレクションの2つのインスタンスを最新かつ同一に維持する場合は、Unisonが適しています。


Linux
  1. LinuxにPythonをインストールする方法

  2. LinuxにJavaをインストールする方法

  3. RockyLinux8にFirewalldを使用してFail2banをインストールする方法

  1. Linuxでgocryptfsを使用してファイルを暗号化する方法

  2. Linuxでファイルを解凍する方法(例付き)

  3. Linuxでxargsを使用してファイルを移動するにはどうすればよいですか?

  1. LVMを使用してLinuxをインストールする

  2. Linuxでfdコマンドを使用してファイルを検索する方法

  3. Ubuntu Linux に .deb ファイルをインストールする方法