なぜ双方向/双方向のファイル同期ソリューションが必要なのか、自問するかもしれません。 osyncの端末ベースの性質 次の3つのモードで実行できる理想的なファイル同期ソリューションになります。
- 手動
- スケジュールされたタスクを介して
- デーモン経由(新しいファイルの変更が発生したときにトリガーされます)
このステートフルシンクロナイザーはrsyncとして機能します ラッパー。 非同期 ターゲットファイルの変更を監視する義務がないため、ステートフルと見なされます。この属性により、エージェントレスにもなります。
2回の実行の間に、osyncはレプリカファイルリストを比較します。これらの実行は、ローカルからローカルまたはローカルからリモートにすることができます。ローカルからローカルへのレプリケーションの実行には約2秒かかりますが、ローカルからリモートへのレプリケーションの実行には約7秒かかります。
非同期機能
著名な非同期機能のハイライト:
- ローカルからローカルおよびローカルからリモートへの同期のサポート。
- 完全なスクリプト時間制御。
- メールアラート
- デーモンとしてまたはスケジュールどおりに実行する
- ディレクトリ監視
- ロギングファシリティ
- バッチランナーを介して複数の同期タスクを処理し、再実行オプションを介して失敗した同期タスクを処理します
- フォールトトレランスを処理するためのシナリオを再開します
- 拡張属性とPOSIXACL同期
- 実行前/実行後のコマンド実行
- 複数のバックアップとソフト削除の処理
迅速な実行が必要な場合は、ディスク容量のチェックや属性の保持など、一部のosync機能を無効にすることをお勧めします。ターゲット/イニシエーターの同期スキーマは、osyncでも適用できます。
既存のターゲット/イニシエーターレプリカは、pidlockを介して複数の同時同期プロセスから保護されます。 Osyncの主要な設計は、ユーザー/システムデータの削除を防ぎます。ソフト削除または競合するファイルは、作成されたバックアップを通じて保持されます。
LinuxにOsyncをインストールする
osyncの安定版または最新バージョン Githubで見つけることができます。 Githubからosyncファイル同期ツールを取得してインストールする前に、まずgitをインストールする必要があります。
Linuxオペレーティングシステムのディストリビューションに従って、次のインストールガイドのいずれかを使用してください。
RHELベースのDistorにOsyncをインストールする
$ sudo yum install git $ sudo git clone -b "stable" https://github.com/deajan/osync $ cd osync $ sudo bash install.sh
DebianベースのDistorsにOsyncをインストールする
$ sudo apt install git $ sudo git clone -b "stable" https://github.com/deajan/osync $ cd osync $ sudo bash install.sh
ArchLinuxにOsyncをインストールする
$ sudo pacman -S git $ sudo git clone -b "stable" https://github.com/deajan/osync $ cd osync $ sudo bash install.sh
OpenSUSELinuxにOsyncをインストールする
$ sudo zypper install git $ sudo git clone -b "stable" https://github.com/deajan/osync $ cd osync $ sudo bash install.sh
Githubからosyncのクローンを作成しているときに、-b "stable"
を削除します git cloneコマンドのオプションは、osyncの最新の開発スナップショットを取得します。
LinuxでOsyncを使用して双方向のファイル同期を行う方法
すでに述べたように、osyncを使用するには3つのアプローチがあります。
- クイック同期モード
- 構成ファイルモード
- デーモンモード
クイック同期モードを使用したローカル-ローカルおよびローカル-リモートファイル同期
ただし、このアプローチは、ディレクトリ間の高速同期を実現しようとしているユーザーにとっては便利です。 ローカルからローカルの場合 ディレクトリについては、次のosync構文を検討してください。
$ osync.sh --initiator="/path/to/directory1" --target="/path/to/directory2"
実装例は次のとおりです。
$ sudo osync.sh --initiator="/home/dnyce/LinuxShellTips" –target="/home/dnyce/LinuxShellTips_Backup"

ローカルからリモートの場合 ディレクトリの場合、最初にSSHパスワードなしアクセス用にマシンを構成する必要があるかもしれません。
$ sudo ssh-keygen -t rsa $ sudo ssh-copy-id [email protected] $ sudo ssh [email protected]
ローカルからリモートへのQuickSync構文は次のとおりです。
$ osync.sh --initiator="/path/to/another/directory" --target="ssh://user@host/IP:22//path/to/directory2"
実装例は次のようになります。
$ sudo osync.sh --initiator="/home/dnyce/LinuxShellTips" --target="ssh://[email protected]:22//home/ubuntu/linuxshelltips_remotesync"

そして最後に…

osyncが警告で終了したことを心配する必要はありません 、サーバーでpingを無効にしただけです。ただし、osyncコマンドには、重大なエラーの診断に役立つ次のコマンドオプションを含めることができます。
--summary --errors-only --no-prefix
例:
$ osync.sh --initiator="/path/to/another/directory"--target="ssh://user@host/IP:22//path/to/directory2" --summary --errors-only --no-prefix
ファイル同期を自動化するためのcronジョブの構成
Quick Syncを自動化できます cronジョブによるモードタスク。
$ sudo su $ crontab -e
ローカルからローカルおよびローカルからリモートのディレクトリに次の2つのcronジョブを追加すると、osyncタスクが自動化されます。
*/5 * * * * osync.sh --initiator="/home/dnyce/LinuxShellTips" –target="/home/dnyce/LinuxShellTips_Backup" */5 * * * * osync.sh --initiator="/home/dnyce/LinuxShellTips" --target="ssh://[email protected]:22//home/ubuntu/linuxshelltips_remotesync"
非同期 は、ローカルからローカルおよびローカルからリモートのディレクトリに理想的な双方向の同期ソリューションです。作成したディレクトリ同期は、誤って削除したり、ファイルが破損している証拠があった場合に備えて、重要なデータの完全なバックアップ計画です。