inotifyの
inotifyのは、リアルタイムの監視サービスされた後、彼は、ディレクトリサーバでのリアルタイムの変化を監視するディレクトリの変更を見つけることができ、バックアップサーバー上のrsyncサービスで押し込ん
ファイルシステムを監視し、このような欠失のような他の変更がイベントを検索するために、通知することにより、上記請求カーネル2.6.13をinotifyを以上に
次のリストサーバが通知サポートファイル
[@ルートミリアンペアNODE2] #ll / PROC / SYS / FS /はinotify / 合計0 -rw-R&LT - r--の1ルートルート0 Jul- 31は 11:00 max_queued_events -rw-R&LT - r--の1ルートルート0 Jul- 31である 11。 :00 max_user_instances -rw-R&LT - r--の1ルートルート0 Jul- 31は 11:00 max_user_watchesがする
仕事は、調整可能な必要
max_queued_events:#はinotifyイベントキューの最大長を、イベントキュー値が小さすぎる表示されますオーバーフローエラー、デフォルト値:16384
#:max_user_watchesが:監視することができるファイルの数(シングルプロセス)、デフォルト値:8192
#:Max_user_instances:最大値を作成するために、各ユーザのためにはinotifyインスタンス、デフォルト:128
inotifyの依存はinotify-ツール(EPELソースで)
[ルート@ノード4〜]#yumを インストールするのinotify-ツールを-y
監視/データ/ファイル
inotifywait -mrq --timefmt ' %Y-%M-%D%H:%M ' --format ' %のF W%T%が'、moved_toを作成、削除-e、close_write、ATTRIB /データ/ WWW #: - M常にイベントリスナーを保つ - 再帰的なディレクトリ変更監視データr - 出力イベント情報のQ少量 - はtimefmt定義された時刻形式 %Y年情報 %のM月情報 %のヶ月のD日 %のHのH %M分 - フォーマット形式の定義 %T時間形式の出力フォーマットが定義された時間情報 %のwは 時間が表示された場合、監視ファイルまたはディレクトリ情報名前 %がF時間はそうでなければ、監視ディレクトリファイルまたはディレクトリ情報の下にトリガイベントを表示する、表示された場合、空 - Eは、イベントの種類を指定します ファイルやディレクトリの作成を作成します ファイルを削除するか、またはディレクトリが削除されます 変更内容は、ファイルまたはディレクトリに書き込まれます ATTRIBファイルまたはディレクトリが変更属性 moved_toファイルまたはディレクトリは、監視中のディレクトリに移動し、 moved_fromファイルまたはディレクトリが監視対象のディレクトリから移動させ、 ファイルまたはディレクトリを移動したり、イベントをトリガしているにかかわらず、ディレクトリの監視の外に移動します delete_selfファイルまたはディレクトリが削除され、ディレクトリ自体は削除されます アンマウントアンマウント
rsyncの
パッケージをインストールします。
[ルート@ノード4のWWW]#yumを インストールしたrsync -y
編集rsyncサーバの設定ファイル
[ルート@ NODE2ミリアンペア] #vim /etc/rsyncd.confuid = ルート UID = ルート GID = ルート#:rootとしてrsyncサーバを定義します 使用chroot環境を = NO位:ルートのカットを許可しません。 接続最大 = 0 #:最大接続数、0は無制限を意味します エラー番号を無視:エラーが発生した場合、エラーを無視 除外 =ロスト+見つかっ/ #:このディレクトリを確認しません ログファイルを =は/ var / log / rsyncd.log PID ファイル =の/ var /実行/ rsyncd.pid ロックファイル =の/ var /実行/ rsyncd.lock 検索リバースは =ん閉じる逆解析:NO#を ホストを許可 = 192.168。8.0 / 24 #を:これらのホスト接続を許可します [バックアップ]位:名前のコードブロックであります パス = /バックアップ/ #:どのディレクトリ単位にバックアップデータ コメント = バックアップ#:説明 唯一読むには =んNO#を:書き込み可能 ユーザーAUTH = rsyncuser番号:リモートユーザー 秘密のファイル =は/ etc / rsync.pass#:置くリモートユーザのパスワードファイル
検証ファイルrsyncサーバを生成し、アクセス権を変更
[ルート@ノード2ミリアンペア]#のエコー " rsyncuser:magedu " >の/ etc / rsync.pass番号:形式のユーザー名:パスワード
[ルート@ノード2のMA]は600 #chmod /etc/rsync.passを
rsyncサーバでバックアップファイルを用意し、サービスを再起動します
[ルート@のノード2のMA]#のMKDIR / バックアップ [ルート@のノード2のMA] #systemctl再起動RSYNCD
(パスワードを入力しない同期)とパーミッションを変更するクライアント設定のパスワードファイルで
[ルート@ノード4〜]#はエコー " magedu " >の/ etc / rsync.pass [ルート@のノード4〜]#1 のchmod 600 /etc/rsync.pass
その後、テスト
[ルート@のノード4〜] #rsync -avz --password- ファイル =は/ etc / rsync.pass /データ/ WWWのrsyncuser @ 192.168。37.22 ::バックアップ #:テンプレート rsyncの -avz --password- ファイル =は/ etc / rsync.pass /データ/ rsyncuser @ rsyncの服务器IP ::バックアップ
これで、同期することができます
その後、我々はそれリアルタイムで同期させるためのスクリプトを使用して開始しました
クライアント側のスクリプトを作成します。
[ルート@ノード4のWWW] #vim /データ/ inotify_rsync。SH #!/ binに/ bashの # # ************************************************* ******************* #Author:馬雪ビン #QQ: 316428921 #Date: 2019年 - 07 - 31 #!/ binに/ bashの SRC = ' /データ/ WWW / ' DEST = ' [email protected] ::バックアップ' inotifywait -mrq --timefmt ' %Y-%M-%D%H:%M ' --format ' %のTの重量%で%F " -e、作成、削除moved_to、close_write、ATTRIBの$ {SRC} | しばらく読ん日付時刻DIRファイル。DO FILEPATH = $ {DIR} $ {FILE} rsyncの -az --delete --password- ファイル =は/ etc / rsync.pass $ SRC $ DEST && エコー " $ {TIME}で$ {DATE}に、ファイル$ FILEPATHは、rsyncを経由して、最大バックアップされた" >>は/ var /ログイン/ changelist.logが 行われ
実行、実行許可を追加します。
[ルート@ノード4〜]#1 のchmod + X /データ/ inotify_rsync。SH [ルート@のノード4〜]#。/データ/ inotify_rsync。SH