二、Linuxののリアルタイム同期ソフトウェアのinotify

inotifyをのLinuxのリアルタイム同期ソフトウェア

 

通知インタフェースinotifyを開始してからLinuxカーネルバージョン2.6.13は、そのようなので、上のファイルアクセス、削除、移動、およびなどのファイルシステムの監視の変更、各種のために用意されています。このメカニズムを使用すると、非常に簡単にファイル移動アラーム、増分バックアップ、およびディレクトリやファイルの変化にタイムリーな応答を実装することができます。inotifyのシステムインタフェース、rsyncのと合わせディレクトリとファイルのリアルタイム監視、リアルタイムのディレクトリ同期を呼び出すことによって変更することができます。システムのカーネルバージョンを決定した後、あなたはinotifyのパッケージをインストールすることができます。

#[ルート@〜nfs01]はuname -R&LT
2.6.32-696.el6.x86_64
[ルート@ nfs01〜]#LSは/ proc / SYS / FS / inotifyを/
max_queued_events max_user_instances max_user_watchesが
#max_queued_eventsデフォルトのキュー16384は、時間監視が猫を使用することができるを示しています表示するには、コマンド
#max_user_instancesがデフォルト128のインスタンスの数を監視するように表して
#max_user_watchesは、デフォルトでは8192にファイルの数を監視し、各インスタンスを表します

 

システムのデフォルト設定を変更するには、/etc/sysctl.confファイルを変更する必要があります

[ルート@バックアップNFS]に/etc/sysctl.conf#1 VIM
三行は、最後に追加#
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 90000000

 

  • ソフトウェアのインストールとinotifyを使います

1)はinotifyパッケージがインストールされている、あなたは公式サイト(ダウンロードすることができますコンパイルしてインストールし、あなたがyumをインストールすることができhttp://sourceforge.net/projects/inotify-tools/)ソースパッケージを、あなたが前提のEPELソースを設定する必要があります。

[ルート@ nfs01〜] #wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[ルート@のnfs01〜]#yumを-yをインストールinotify-toolsの
[ルート@ nfs01〜]#回転数はinotifyを-ツール-qa
のinotify-toolsを-3.14-1.el6.x86_64を

 

2)共通パラメータをinotifyを

ソフトウェアが使用される二つのコマンドが、/ usr / binに/ inotifywaitと/ usr / binに/ inotifywatchあるinotifyをインストールした後、

データディレクトリへのinotifywait <---変更の監視を実現するための情報(コマンドを理解することに焦点を当てます)

 

inotifywatch <---モニター・データの変更、統計データの変更

通常、我々は、統計関数を使用しinotifywatch以下、変更することができ、ディレクトリ情報を表示するinotifywaitコマンドを使用します

いくつかの一般的に使用されるパラメータのinotifywaitコマンドは次のとおりです。

コマンドパラメータ

パラメータ説明

-m | --monitor

常にリスニング状態

-d | --daemon

背景の監視、イベント情報は、指定したファイルに記録されます

-r | --recursive

再帰的なディレクトリモニタデータの変更

-q | --quiet

出力内容を削減

--timefmt

日付フォーマットセット(%F =%Y-%M-%D - 中 - 日%T =%のH:%のM:%S時間:分:秒)

- フォーマット

出力フォーマット情報(%T時間監視ディレクトリ%F%Wファイル変更イベント情報%のE)を設定します

-e

テストアクション(使用が閉じていることを指定し書き込みの修正が移動、削除、削除作成作成モバイルに)

 

例: "/%F%E W%T%" を--format inotifyを-mrq --timefmt "%のF%T" \

-eレコード生成、削除、移動に、近い書き込み/データ

 

  • + rsyncのリアルタイム同期のinotify

1)原則

inotifyのは、違いのrsyncの--deleteパラメータを使用すると、スクリプトの呼び出しをすることができ、ディレクトリへのinotify監視データの変更、指定したディレクトリのデータの同期クライアントとサーバなしで達成することができ、特定のディレクトリのデータの継続的な監視を実現することができますリアルタイムの同期機能を有効にrsyncサービス、。

設定2)のrsyncサービス

リアルタイムの同期、最初に次のようにクライアントがバックアップサーバ、テストにファイルをプッシュすることができ、そのサーバーとクライアントのインストール構成のrsync(入門展開上のrsyncサービス)を確認してください。

[ルート@ nfs01〜]#は、rsyncのは/ etc /のsysconfig [email protected] --password-ファイル:: = NFSは/ etc / rsync.password -AZ
#プッシュクライアントを
[バックアップルート@〜]#のLS / NFS
のsysconfig
#サーバは、受信します

 

 3)スクリプト

インストール後はinotify、ときディレクトリデータの変更は/ usr / binに/ inotifywaitリアルタイム監視ディレクトリを使用し、スクリプトによって実装のrsyncサービスを呼び出します:

#!/ binに/ bashの
#はinotify + rsyncのバックアップ/データ
は/ usr / binに/ inotifywait -mrq --format "%fをワット%" -eは、moved_to、削除、close_write /データを作成| \
読取ラインしばらく
DO
rsyncの-az /データ/ --delete [email protected] :: NFS --password-ファイル=は/ etc / rsync.password
完了

 

 

 4)スクリプトを実行し、テスト

[ルート@ nfs01データ]#1 SHの/root/inotify_rsync.sh&
[1] 3555
#タッチ{01..20} [データnfs01ルート@]
[データnfs01ルート@]#のLS
01 02 03 04 05 06 07 08 09 10 11 12 1,314,151,617,181,920
#クライアントは、テストファイルを作成するには
、[ルート@バックアップがNFS]#のLS / NFS
01 02 03 04 05 06 07 08 09 10 11 12 1,314,151,617,181,920
#サーバ成功したリアルタイムの同期機能を実現するために、受信

 

  • inotifyのソフトウェア不十分

inotifyの監視システムインターフェイスが呼び出されるが、小さいファイル転送の数が多い場合、プロセスは、制限され、かなりの遅延、実際の生産が存在するであろう、以下を使用します。

 

 

 

おすすめ

転載: www.cnblogs.com/yaokaka/p/11620751.html