inotifyを設定+ rsyncのリアルタイム同期

サービスのrsyncコマンドとに慣れていない、あなたはボーエンを参照することができますrsyncのリモート同期によって
、ここで言っているわけではありません!

最初からLinuxカーネルバージョン2.6.13はように、このようなファイルアクセス、削除、移動などのファイルシステムの変更、各種の監視、変更、および使用する通知inotifyのインタフェースを提供することでした。このメカニズムを使用して、ファイルの移動アラーム、増分バックアップ、およびディレクトリやファイルの変化にタイムリーに対応のために非常に便利です。

inotifyのメカニズム組み合わせrsyncのツールは、バックアップ(リアルタイム同期)出発ができます-限り、文書の元の場所はすぐに増分バックアップを開始、変更、または示すように、無音状態で待機:
inotifyを設定+ rsyncのリアルタイム同期
この方法では、避けますとき、バックアップの一定期間存在を遅らせ、問題の期間があまりにも密です!

これは、アップリンク同期アプリケーションに適しLinuxカーネルによって提供inotifyを通知メカニズムので、この機械監視の主な仕事は、バックアップトリガこそあります。

実験に必要なパッケージのinotify-toolsを-3.14.tar.gzのネットワークディスクリンク:https://pan.baidu.com/s/1Ov006-6MV76VMVWL1LFyAA
抽出コード:np88

配置inotify+rsync实时同步大致分为4步:
(1)调整inotify内核参数;
(2)安装inotify-tools软件包;
(3)编写触发式同步脚本;
(4)测试实验效果。

二次のブログ記事に基づいて、この実験環境:rsyncを介したリモート同期

以下は、シーケンスやコンフィギュレーションを(説明する以下の操作は、サーバーBで実行されています!):

(1)カーネルパラメータを調整するのinotify

:Linuxカーネルでは、調節機構はinotifyデフォルトの3つのパラメータ提供し
、監視キューサイズ(操作イベント):(1)max_queue_eventsを
(2)max_user_instances:(ディレクトリを監視する)モニタリングの最大数例;
3)max_user_watchesが:各ファイルの最大数を監視する例。

[root@localhost ~]# cat /proc/sys/fs/inotify/max_queued_events 
16384
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_instances 
128
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches 
8192
//系统的默认值,如果有需要可以自行修改!
[root@localhost ~]# vim /etc/sysctl.conf
                     …………                //省略部分注释内容
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@localhost ~]# sysctl -p
//立即生效

ナンバー通常、設定値が推奨監視監視対象の合計ファイルよりも大きいです!

(2)はinotify-toolsのパッケージのインストールを

inotify-ツールのinotify-toolsのパッケージは公式サイトからダウンロードすることができ、また、記事のリンクのネットワークディスク初め経由でダウンロードすることができます。
クライアントのインストールには:

[root@localhost ~]# tar zxf inotify-tools-3.14.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/inotify-tools-3.14/
[root@localhost inotify-tools-3.14]# ./configure && make && make install

インストールが完了するのinotify-toolsのツールをされた後、2つのコマンドを生成します:
inotifywaitを:継続的な監視、実際の出力のために、
inotifywatch:短期モニタリングのために、タスクは、結果を完了しています。

命令所使用的参数有:
-m,持续进行监控
-r,递归监控所有子对象
-q,简化输出信息
-e,指定要监控哪些事件类型

コマンドの詳細については、彼らのmanページを参照することができます!

一例として、サイトのルートを監視するには:

[root@localhost ~]# inotifywait -mrq -e modify,move,create,delete,attrib /var/www/html
//以递归、持续监控整个目录的修改、移动、创建、删除、属性变更等各种事件

(3)トリガ同期スクリプトを書きます

クライアントスクリプト:

[root@localhost ~]# vim 123.sh
#!/bin/bash
A="inotifywait -mrq -e modify,move,create,delete /var/www/html"
B="rsync -azH --password-file=/root/123.pass /var/www/html/* [email protected]::wwwroot"
$A | while read DIRECTORY EVENT FILE
do
        if
                [ $(pgrep rsync | wc -l) -le 0 ]
        then
                $B
        fi
done
[root@localhost ~]# chmod 777 123.sh
[root@localhost ~]# vim /etc/rc.d/rc.local
             …………         //省略部分内容,编写以下内容
/root/123.sh &
[root@localhost ~]# chmod 777 /etc/rc.d/rc.local
//        /etc/rc.d/rc.local这个文件中主要存放一些开机自启动的脚本

試験所の(4)効果

コンテンツをサーバに同期させることができるかどうか確認するためにテストするために、クライアントを再起動します!

[root@localhost ~]# pgrep 123.sh         //查看脚本开机是否已经自动运行
1033
1039
//表示脚本的进程号

テスト用クライアント上のファイルを作成します。

[root@localhost ~]# touch /var/www/html/666

サーバーを認証するには!

[root@localhost ~]# ls /var/www/html
666

サーバが自動的に同期されています!実験の完了!

おすすめ

転載: blog.51cto.com/14157628/2429904