複数のマシンでファイルを同期させることは、Linuxユーザーにとって一般的なタスクです。ラップトップとデスクトップの両方を使用したり、ホームサーバーとVPSを管理したり、重要なファイルの追加コピーが必要です。
シンプルなバックアップの場合、 rsync href = “https://www.tecmint.com/scp-commands-examples/” rel = “noopener”ターゲット= “_blank” title = “scpコマンド”> scp
これは、 unison file synchronizer が役立つ場所です。これは、両側のディレクトリを比較し、変更を検出し、更新して、両方の場所が常に一貫性を保つようにする双方向同期ツールです。
このガイドは、Linuxで unisonファイルシンクロナイザーを使用する基本を説明します。
最後まで、あなたは次の方法を知っているでしょう:
- 人気のLinuxディストリビューション
- 2つのローカルフォルダー間でファイルを同期します。
- SSH。
- プロファイルを作成して、繰り返し同期タスクを容易にします。
- バージョンの不一致やファイル競合などの一般的な問題を修正します。
を使用して、リモートシステム全体でディレクトリを同期します
始めましょう…
Linux
にユニゾンを取り付けます
Linux Distributionのパッケージリポジトリから unison をインストールするか、安定したリリースをダウンロードできます。ほとんどのユーザーにとって、リポジトリからインストールすることが最も簡単な方法です。
sudo aptインストールユニゾン[ debian、ubuntu and mint ] sudo dnfインストールunison [on rhel/centos/fedora および Rocky/Almalinux ] sudo apk [on alpine linux ]を追加する sudo pacman-s unison [on arch linux ] sudo zypperインストールユニゾン[on opensuse ] sudo pkgインストールユニゾン[freebsdで]
GUIバージョンが必要な場合は、次のコマンドでインストールできますが、GUIバージョン(unison-gtk)
は debian”> debian “debian” debian “分布。
sudo apt install unison-gtk
インストール後、
でバージョンを確認します
unison-version
重要なメモ: unison は、バージョンの互換性について厳しいです。 2つのシステム(たとえば、ラップトップとVPS)間で同期する予定の場合、どちらも unison とまったく同じバージョンを持っている必要があります。それ以外の場合、接続を拒否します。
基本的なローカル同期
ネットワーク上で unison を使用する前に、同じマシンで2つのフォルダーを同期することから始めることをお勧めします。
2つのフォルダーがあるとしましょう:
-
〜/documents/work
→メイン作業フォルダー -
〜/backup/work_sync
→バックアップフォルダー
これらのフォルダーを同期するには、実行:
unison〜/documents/work〜/backup/work_sync
ここにコマンドの内訳があります:
- 比較:ディレクトリの両方をスキャンし、ファイル名、サイズ、タイムスタンプを比較します。
- レポートの違い:2つのフォルダーのすべての違いをリストします。
- ユーザー確認:変更がある場合、 unison は何をすべきかを尋ねます:ファイルを左から右、左に、またはスキップします。
- 同期:確認されたら、 unison 両方のディレクトリを更新して、一致します。
ヒント:1つのフォルダーのみに存在するファイルは、他のフォルダーに自動的にコピーされます。両方のフォルダーにファイルが存在しているが異なって変更されている場合、ユニゾンは競合を解決するように促します。
この双方向のアプローチは、 unison をより安全にするものです cp/a>または
自動化にプロファイルを使用 long unison 毎回コマンドを入力すると、退屈になります。幸いなことに、 unison を使用すると、プロファイルを作成できます。これは、同期タスクの繰り返しの命令セットが保存されています。プロファイルは、 .prf extensionを使用して〜/.unison/に保存されます。
新しいプロファイルファイルの作成 nano〜/.unison/work.prf 次のコンテンツを追加します: root =/home/youruser/documents/work
root = ssh:// username@server-ip // home/username/documents/work auto = true
batch = true
好み=新しい 各オプションの内訳です: root →同期するフォルダーを定義します(ローカルとリモート)。 auto = true →確認を要求せずに同期を自動的に実行します。 batch = true →非対話モードで実行されます(スクリプトまたはCronジョブに役立ちます)。 fepried = newer →競合の場合、最新の変更時間でファイルを保持します。 次のコマンドを実行するだけで、 unison はプロファイルを自動的に使用します。毎回長いコマンドを入力する必要はありません。 unison work 連続同期を実行する(ライブモード) 時計モードを使用して変更が発生しているため、ディレクトリが自動的に同期し続けることがありますディレクトリを継続的に監視します。
ユニゾンワークリピートウォッチ このコマンド: Unisonは、変更のためにディレクトリをスキャンし続けます。
両側に追加または変更されたファイルは自動的に同期されます。
これは、ファイルが絶えず更新されている開発プロジェクトに特に役立ちます。 注:監視モードは、ディレクトリが非常に大きい場合はより多くのシステムリソースを消費できるので、賢く使用してください。 Cronとのスケジューリング同期
継続的監視の代わりに定期的な同期を好む場合は、 unison を自動的に実行するようにスケジュールできます furing of on dyus”
最初に、crontabを編集します: crontab-e 次の行を追加してプロファイルを1時間ごとに同期します: 0 * * * *ユニゾンワークバッチ ここにコマンドの内訳があります: 0 * * * * →毎時間で実行します。 unison work-batch →非対話モードで作業プロファイルを実行します。 一般的なユニゾンオプションあなたが知っておくべき
便利な unison オプションの簡単な参照:
<表> オプション
説明 -auto 簡単な更新を自動的に解決します。 -batch ユーザープロンプトなしで実行されます(Cronに役立ちます)。 -ui text 端子テキストモードインターフェイス。 -repeat Watch 変更については、フォルダーを継続的に監視します。 -prefer new 競合の場合に最近変更されたファイルを保管してください。 組み合わせオプション: unison work-auto-batch-prefer Newer これにより、同期が自動的に実行され、新しいファイルを保持することで競合を解決し、促しません。
他のツールでユニゾンを選択する理由
<表> ツール
同期タイプ
双方向 guiが利用可能
ユースケース rsync 片道
❌
❌
バックアップ、サーバーミラーリング unison 双方向
✅
✅(gtk)
マシン全体のアクティブプロジェクト 最終的な考え unison は、軽量だが強力なツールです。 rsync などの一方向ツールとは異なり、両方の方法でファイルを安全に同期し、偶発的な上書きとファイルの損失を防ぎます。