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

リアルタイムのファイル同期

自分では使用していませんが、最近読んだことがあります。 lsyncd というデーモンがあります 、これはまさにあなたが必要としているものだと思います。

詳細はこちら


マルチマスター モードでの複数サーバー間のリアルタイム ファイル同期

lsyncd という優れたツールがあります リアルタイムで複数のサーバー間でファイルを同期するには、ここでは2つのサーバーで試しました。

ホスト:Server1 および Server2

使用OS:CentOS7

以下のパッケージを両方のサーバーにインストールします。

# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd

両方のサーバーで ssh-key を生成し、authorized_keys に追加します ファイル。 [server1 の公開鍵を server2 の authorized_keys に追加します。 server2 の公開鍵を server1 の authorized_keys に ファイル]

サーバー 1 の構成

/etc/lsyncd.conf を開く -- を使用してデフォルト設定をコメントアウトします 行の先頭に追加し、以下の構成をファイルに追加します。

settings {
  logfile = "/var/log/lsyncd/lsyncd.log",
  delay = 1
}
sync {
  default.rsync,
  source="/home/test/public_html/",
  target="server2:/home/test/public_html/",
  rsync = {
    compress = true,
    acls = true,
    verbose = true,
    owner = true,
    group = true,
    perms = true,
    rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
  }
}

target でターゲット IP を変更します パラメータ。

delay を変更できます あなたの条件によるパラメータ。ここでは 1 秒に設定されています。

次に、ログ ディレクトリを作成します。

# mkdir -p /var/log/lsyncd

lsyncd を有効にする サービスを自動的に開始します。

# systemctl enable lsyncd.service

サービスを開始します。

# systemctl start lsyncd.service

サーバー 2 の構成

Server1 と同じ構成に従い、target を変更します。 IP.

これで同期が設定されました。

tailf /var/log/lsyncd/lsyncd.log からアクティビティを確認できます

MelBurslan の提案に感謝します。


inotify ツール

inotify へのインターフェースを提供する 、構成:

inotifywait

このコマンドは、inotify イベントをブロックするだけなので、シェル スクリプトでの使用に適しています。ファイルとディレクトリの任意のセットを監視でき、ディレクトリ ツリー全体を再帰的に監視できます。

inotifywatch

このコマンドは、ファイルシステムの使用統計を収集し、各 inotify イベントのカウントを出力します。


Linux
  1. Sysadminツール:rsyncを使用して、バックアップ、復元、およびファイル同期を管理します

  2. リダイレクトの順序は?

  3. Linux –すべてがファイルですか?

  1. ファイルの行数を数えますか?

  2. ターミナルウィンドウからLinuxでファイルを作成するには?

  3. ファイル内で \n を grep する方法

  1. ファイルの一部を並べ替えますか?

  2. Linux –リアルタイムのファイル同期?

  3. cp -L 対 cp -H