inotify-toolsのインストールと使用


inotify-toolsは、ファイルまたはディレクトリの変化を監視するためのinotifywaitと、ファイルシステムへのアクセス回数を統計するためのinotifywatchの2つのツールを提供します.kernel 2.6.13以上はサポート(直接インストール使用)、本人はcentos 5.4 x 64、kernelバージョン2.6.18はテストコマンドを実行[root@hostname inotify]# grep INOTIFY_USER/boot/config-$(uname -r) CONFIG_INOTIFY_USER=y結果=y(yes)の場合、インストール手順wgetを完全にサポートhttp://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz tar *** cd *** ./configure --prefix=/usr/local/inotify/make && make install

  
  
  
  
  1. #!/bin/bash 
  2. monitor_dir=/home/ppp 
  3. /usr/local/inotify/bin/inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format  '%T %e %w%f' -e modify,delete,create ${monitor_dir} | while read line 
  4. do $cmd 
  5. done 

inotifyの戻り値は、20130313 10:06 CREATE/home/ppp/test.html 20130313 10:06 MODIFY/home/ppp/test.html 20130313 10:07 DELETE/home/ppp/test.html inotifywait:モニタファイルまたはディレクトリ変化構文:    inotifywait[-hcmrq][-e][-t][--format][--timefmt][...]パラメータ:    -h,–help     ヘルプ情報の出力    @     監視を必要としないファイルを除外します.相対パスでも絶対パスでも構いません.    –fromfile     監視するファイルまたは除外するファイルをファイルから読み込み、1つのファイル1行、除外するファイルは@で始まります.    -m, –monitor     脱退せずに一つのことを受信し、無期限に実行する.デフォルトの動作は、1つのことを受信した後、すぐに終了します.    -d, –daemon     -monitorと同様に、バックグラウンドで実行する以外に、-outfileを指定してファイルに出力する必要があります.-syslogを使用していることを意味します.    -o, –outfile     標準出力ではなくファイルに出力します.    -s, –syslog     システムログへのエラーメッセージの出力    -r, –recursive     1つのディレクトリの下にあるすべてのサブディレクトリを監視します.    -q, –quiet     一度指定しても詳細は出力されず、二度指定しても致命的なエラーを除いては出力されません.    –exclude     除外するファイルに正則的に一致し、大文字と小文字が敏感です.    –excludei     正則は、大文字と小文字を無視して除外するファイルに一致します.    -t , –timeout     タイムアウト時間を設定し、0の場合は無期限に実行します.    -e , –event     監視するイベントを指定します.    -c, –csv     csvフォーマットを出力します.    –timefmt     -formatオプションの%Tフォーマットに使用する時間フォーマットを指定します.    –format     出力フォーマットを指定します.    %w発生イベントを示すディレクトリ    %fイベントが発生したことを示すファイル    %eは発生したイベントを表す    %Xeイベントは「X」で区切られます    %T-timefmtによって定義された時間フォーマットinotifywatchを使用する:統計ファイルのシステムアクセス数構文:    inotifywatch[-hvzrqf][-e][-t][-a][-d][...]パラメータ:    -h, –help     ヘルプ情報の出力    -v, –verbose     出力詳細    @     監視を必要としないファイルを除外します.相対パスでも絶対パスでも構いません.    –fromfile     監視するファイルまたは除外するファイルをファイルから読み込み、1つのファイル1行、除外するファイルは@で始まります.    -z, –zero     要素が空であっても、表の行と列を出力します.    –exclude     除外するファイルに正則的に一致し、大文字と小文字が敏感です.    –excludei     正則は、大文字と小文字を無視して除外するファイルに一致します.    -r, –recursive     1つのディレクトリの下にあるすべてのサブディレクトリを監視します.    -t , –timeout     タイムアウト時間の設定    -e , –event     指定したイベントのみをリスニングします.    -a , –ascending     指定したイベントの昇順で並べ替えます.    -d , –descending     指定したイベントの降順で並べ替えます.リスニング可能なイベント    access     ファイル読み込み    modify     ファイルの変更.    attrib     アクセス権、タイムスタンプなどのファイル属性の変更.    close_write     書き込み可能モードで開いているファイルが閉じられているのは、必ずデータが書き込まれているわけではありません.    close_nowrite     読み取り専用モードで開いているファイルは閉じられます.    close     ファイルがどのように開いているかにかかわらず閉じられます.    open     ファイルが開きます.    moved_to     1つのファイルまたはディレクトリがリスニングされたディレクトリに移動し、同じディレクトリ内で移動してもイベントがトリガーされます.    moved_from     このイベントは、同じディレクトリ内を移動してもトリガーされます.    move     movedを含めるtoとmoved_from     move_self     ファイルまたはディレクトリは削除され、その後、このファイルまたはディレクトリはリスニングされません.    create     ファイルまたはディレクトリの作成    delete     ファイルまたはディレクトリの削除    delete_self     ファイルまたはディレクトリを削除してから、このファイルまたはディレクトリをリスニングしません.    unmount     ファイルシステムはマウント解除され、その後、このファイルシステムをリスニングしません.