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

LinuxでOsyncスクリプトを使用して双方向でファイルを同期する方法

なぜ双方向/双方向のファイル同期ソリューションが必要なのか、自問するかもしれません。 osyncの端末ベースの性質 次の3つのモードで実行できる理想的なファイル同期ソリューションになります。

  1. 手動
  2. スケジュールされたタスクを介して
  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つのアプローチがあります。

  1. クイック同期モード
  2. 構成ファイルモード
  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"

非同期 は、ローカルからローカルおよびローカルからリモートのディレクトリに理想的な双方向の同期ソリューションです。作成したディレクトリ同期は、誤って削除したり、ファイルが破損している証拠があった場合に備えて、重要なデータの完全なバックアップ計画です。


Linux
  1. LinuxでRsyncを使用して新しいファイルまたは変更/変更されたファイルを同期する方法

  2. LinuxでsFTPを使用してファイル/ディレクトリをアップロードまたはダウンロードする方法

  3. Pythonスクリプトを使用してLinuxターミナルを終了するには?

  1. diffコマンドを使用してLinuxでファイルを行ごとに比較する方法

  2. LinuxでLogrotateを使用してログファイルを管理する方法

  3. LinuxでLog2ramを使用してRAMにログファイルを書き込む方法

  1. 3 つの方法を使用して Linux で複数のファイルの名前をまとめて変更する方法

  2. Sort コマンドを使用して Linux でファイルをソートする方法

  3. 「dd」コマンドを使用して Linux でスパース ファイルを作成する方法