これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド iwatch です。
プログラム:
NAME
iwatch - inotifyを使用したリアルタイムファイルシステム監視プログラム
SYNOPSIS
iwatch [-d] [-f ][-v] [-p ]
iwatch [-c command] [-C 文字セット] [-e イベント[,イベント[,..]]] [-h| - 助けて] [-m 】
[-r] [-s ][-t ][-v] [- バージョン] [-x 例外]
[-X <正規表現 string as 例外>]
DESCRIPTION
inotify (inode Notice) は、ファイルシステム内のイベントを監視する Linux カーネル サブシステムであり、
これらのイベントをアプリケーションにリアルタイムで報告します。
inotify を使用すると、個々のファイルまたはディレクトリを監視できます。 ディレクトリが
監視されている場合、inotify はディレクトリ自体とそのディレクトリ内のファイルのイベントを返します。
ディレクトリ。 inotify サポートが Linux カーネル 2.6.13 に追加されました。
iWatch は、特定のディレクトリまたはファイルの変更を監視するために inotify をラップする Perl です。
システム管理者にリアルタイムでアラームを送信します。 できる:
· 変更について電子メールで通知を送信します。
· プログラム可能なアクションを即座に実行し、 as XMPP メッセージ経由でアラートを発します。
WhatsApp を使用するか、ローカル プログラムまたはスクリプトを実行します。
・ 活動 as HIDS (ホストベースの侵入検知システム) または完全性チェッカー、
ローカルのファイアウォール システムを補完します。
iWatchは実行できます as デーモン、 as まあ単純な command。 デーモンモードはXMLを使用します
設定ファイルを作成し、監視するディレクトリとファイル (ターゲット) のリストを入力します。 の
command ラインモードは設定ファイルなしで実行されます。 を置くだけです
必要な情報(監視対象、メール、 例外、再帰性、監視するイベント
command 実行する) command ライン。 両方のモードのオプションを混合することはできません
一緒に。
XML 構成ファイルでは、各ターゲットに独自の電子メール連絡先を設定できます。 これ
連絡先は、監視対象に変更があった場合に電子メール通知を受け取ります。 あなた
ディレクトリを再帰的に監視したり、例外のリストを設定したりすることもできます。
監視対象ディレクトリ内のディレクトリ/ファイルを監視したくない。 以下のことも可能です
電子メール通知を無効にして、代わりに command イベントが発生した場合に実行されます。
デフォルトでは、iWatch は次のイベントのみを監視します: close_write、create、delete、move、
delete_self と move_self 。 ただし、アクセス、属性など、考えられるあらゆるイベントを指定できます。
変更または all_events。 詳細については、「イベント」セクションを参照してください。
OPTIONS
iWatch のデーモン モード (バックグラウンド) の使用法:
-d アプリケーションを実行する as デーモン。 これなしでは iWatch はフォアグラウンドで実行されます
オプションを選択します。
-f
代替構成ファイルを指定します。 デフォルトは /等/iwatch/iwatch.xml。
-p
代替の pid ファイルを指定します。 デフォルト: /var/run/iwatch.pid。
-v 冗長になります。
用途 command iWatch のラインモード (フォアグラウンド):
-c < command>
指定できるのは、 command イベントが発生した場合に実行されます。 詳細については
使用可能な文字列については、「コマンドの文字列」セクションを参照してください。
-C <文字セット>
特定します 文字セット (デフォルトはutf-8です)。
-e
監視したいイベントのリストを指定します。 可能性について詳しくは
イベントについては、「イベント」セクションをご覧ください。
-NS、 - 助けて
ヘルプメッセージを印刷します。
-m
連絡先の電子メール アドレス。 このオプションがないと、iWatch は何も送信しません。
電子メール通知。
-r ディレクトリを監視するときの再帰性。
-s オン|オフ
syslog へのレポートを有効または無効にします (デフォルトはオフ/無効)。
-t
フィルターを指定する string (正規表現) ファイル名またはディレクトリと比較する
名前。 ファイル/ディレクトリ名が一致する場合にのみイベントを報告します。
filter string。 のようなファイルを監視したい場合に便利です。 /etc/passwd or
/etc/shadow. この単一のファイルを見る代わりに、 の/ etc
filter="passwd|shadow" を指定したディレクトリ。
passwd/shadow ファイル、これを XNUMX 回変更するとウォッチャーは削除されます
ファイルを作成すると、別の通知を受け取ることはありません。 これは次の原因によって引き起こされます。
passwd または shadow (例: passwd または chfn) を変更するアプリケーションでは、変更されません。
ファイルを直接変更しますが、新しいファイルを作成して passwd または
シャドウファイル。 したがって、この command i ノードが削除されるため、
監視者。
-v 詳細モード。 このオプションでは、現在の主なアクションが表示されます。
- バージョン
バージョン番号を印刷します。
-x <例外 file or ディレクトリ>
監視対象外のファイルまたはディレクトリを指定します。
-X <正規表現 string as 例外>
そして -x ただし正規表現を指定する string as 例外.
STRINGS FOR COMMAND
を使用するときは、-c < command>' オプションを使用すると、次の文字列が利用可能になります。
%c イベントのクッキー番号。
%e イベント名。
%f イベントを取得するファイル名のフルパス。
%F Moved_to イベントの場合の古いファイル名。
%p プログラム名 (iWatch)。
%v バージョンナンバー。
イベント
以下は ' で使用できるイベントです。-e' オプション:
アクセス ファイルにアクセスされました。
ATTRIB ファイル属性が変更されました。
閉じる 読み取り/書き込みモードに関係なく、ファイルは閉じられました。
close_nowrite
ファイルが読み取り専用モードで開かれた後、閉じられました。
閉じる_書き込み
ファイルが書き込み可能モードで開かれた後、閉じられました。
作ります 監視されたディレクトリ内にファイルが作成されました。
削除 監視ディレクトリ内でファイルが削除されました。
自分自身を削除する
監視していたファイルが削除されました。
無視され
ファイルは無視されました。
イズディル dir に対してイベントが発生しました。
修正する ファイルが変更されました。
監視されたディレクトリ内のファイル/ディレクトリが移動されました。
move_from
ファイルはから移動されました。
へ移動
ファイルはに移動されました。
ワンショット
イベントを一度だけ送信します。
開いた ファイルが開かれました。
q_オーバーフロー
キューに入れられたイベントがオーバーフローしました。
アンマウント
監視されているファイルが存在するファイルシステムがアンマウントされました。
デフォルト
close_write、create、delete、move、delete_self、move_self。
すべてのイベント
すべてのイベント。
COMMAND LINE USAGE 例
$ iwatch / tmpに
の変化を監視する / tmpに デフォルトのイベントが含まれるディレクトリ。
$ iwatch -r -e アクセス、作成 -m [メール保護] -x /etc/メール の/ etc
アクセスのみを監視し、イベントを作成します の/ etc ディレクトリ、再帰的に、
/etc/メール as 例外、電子メール通知を送信します [メール保護].
$ iwatch -r -c (w;ps -ef)|メール -s '%f ました かわった' root @ localhost / binに
モニター / binに ディレクトリに再帰的にアクセスし、コマンド「w」と「ps」を実行します。 -もしも',
' を使用して結果を root@localhost に送信しますかわった' as
主題。 「%f」について確認するには、「コマンドの文字列」セクションを参照してください。
$ iwatch -r -X '.svn' ~/プロジェクト
モニター ~/プロジェクト ディレクトリを再帰的に実行しますが、内部の .svn ディレクトリは除外します。
これは通常の ' では実行できません-x' 以降のオプション '-x' は除外することしかできません
定義されたパス。
CONFIGURATION FILE 実施例
デフォルトの構成ファイルは /等/iwatch/iwatch.xml。 例を参照してください。
<ガードメール=[メール保護]" name="iWatch"/>
WEBサーバーの完全性監視
<連絡先メールアドレス=[メール保護]" name="管理者"/>
<path type="recursive" syslog="on"alert="off" exec="echo %p: %e %f | /usr/bin/sendxmpp -t [メール保護]">は/ var / WWWの
/var/www/カウンター
最初の XNUMX 行は、XML バージョンと、使用されるパターンを定義するファイルを定義します。
iWatch による (デフォルトは /等/iwatch/iwatch.dtd)。 これらの行は変更する必要はありません。
のステートメントは、構成の開始点をマークするために使用されます。 の最後の行は、
構成は次のようにする必要があります。 「ガードメール」行は送信者を指定するために使用されます
電子メールで通知を送信するときに使用する電子メールと名前。 つまり、この行は
「From:」電子メールフィールドを定義します。 ののブロックを区切ります
時計または一部の時計の手順に関する定義。
の場所には複数の場所がありますブロック。 この中に
ブロック ( )、 スペースはタイトルを追加するために使用されます。
ブロックの目的を特定します。 「連絡先」行には目的地が含まれます
電子メールで通知を送信する場合の電子メール アドレス (To:) と名前。
それぞれline はファイル/ディレクトリを監視し、アクションを実行できます。 最初の道
表示された行は、ディレクトリ /var/www を再帰的に監視します。 イベントが定義されていないため、
iWatch はデフォルトのイベント (close_write、create、delete、move、delete_self、および
move_self イベント)。 イベントが発生すると、syslog にイベントが記録され、それを報告するメッセージが表示されます。
プログラム名 (%p = iWatch)、イベント (%e)、および監視対象のファイル/ディレクトリ名 (%f)
XMPP プロトコル (sendxmpp 外部プログラム) 経由で送信されます。 [メール保護]。 ご了承ください
alert="off" を指定すると、電子メールの送信が無効になります。 もう XNUMX つの重要な点は、XNUMX 行目です。
/var/www/counter ファイル/ディレクトリを監視から除外しています。
示されている例では、sendxmpp を使用しています command。 他の良い可能性としては、
yowsup-cli command WhatsApp メッセージを送信します。
新しい例です。 以下に示す構成では、iWatch は XNUMX つのデバイス上で動作します。
ブロック。
公開ウェブサイト
<連絡先メールアドレス=[メール保護]" name="ウェブマスター"/>
/var/www/localhost/htdocs
/var/www/localhost/htdocs/About
/var/www/localhost/htdocs/写真
オペレーティング·システム
/ etc / apache2
/etc/passwd
/etc/メール
/etc/メール/統計
の/ etc
テストのみ
/tmp/dir1
/tmp/dir2
/tmp/dir3
/tmp/dir4
最初ブロックはディレクトリを監視し、XNUMX つのファイルに対する特別なアクションを持ちます。
しかし、実行しません command どちらにもありません。 最初のパスは単一 (非再帰的) です。
ディレクトリ /var/www/localhost/htdocs とすべての通知が連絡先に送信されます。
[メール保護]。 イベントが指定されていないことに注意してください。 したがって、デフォルト (close_write,
create、delete、move、delete_self、move_self) が使用されます。 XNUMX 番目のパスはファイルです
/var/www/localhost/htdocs/About。 このファイルは最後のディレクトリ内にあります。 違い
このファイルに対するすべてのアクティビティが /var/log/syslog に記録されるということです。 XNUMX番目の道
/var/www/localhost/htdocs/Photos ディレクトリ (また、
最初のディレクトリ)。 ログはありません。 デフォルトのイベントはメールで通知されます。
XNUMX 番目のブロックには XNUMX つのモニタリングがあります。 すべての通知は admin@localhost に送信されます。
最初のブロックの主な目新しさは、パスが「フィルター」命令を使用して監視していることです。
/ etc / shadow /etc/passwd 同時に。 この状況をよりよく理解するには、次を参照してください。
'-t' オプションセクションにあります。
最後のブロックは、最初の行でデフォルト イベントを監視し、行でいくつかの非デフォルト イベントを監視します。
次の XNUMX 行。 すべての行で「alert」が定義されています as 'オフ'。 したがって、iWatch は、
組み込みのメール エンジンを使用して電子メールを送信しないでください。 ただし、XNUMX 行で外部
command 「mail」はパーソナライズされた電子メールを送信するために使用されました。
学習 ABOUT イベント
イベントについて学ぶためのヒントは、iWatch を観察することです command 'で実行-e すべてのイベント'
オプション。 次の例では、「ls」を監視します。 / tmpに' command.
$ iwatch -e all_events / tmpに
[17/Jun/2014 11:22:59] IN_ISDIR,IN_OPEN / tmpに
[17/Jun/2014 11:22:59] IN_ISDIR,IN_CLOSE_NOWRITE / tmpに
別の例では、内部のファイルの作成を監視します。 / tmpに:
$ iwatch -e all_events / tmpに
[17/2014月/11 29:43:XNUMX] IN_MODIFY /tmp/file.txt
[17/2014/11 29:43:XNUMX] IN_OPEN /tmp/file.txt
[17/2014月/11 29:43:XNUMX] IN_MODIFY /tmp/file.txt
[17/2014月/11 29:43:XNUMX] IN_CLOSE_WRITE /tmp/file.txt
[17/2014/11 29:43:XNUMX] * /tmp/file.txt は閉鎖されました
したがって、最後の例では、modify、open、および close_write アクションが発生しました。
RULES バリデーション
バージョン 0.2.0 以降、iWatch は XML ファイルに次のエントリがあるかどうかをチェックします。
最初の XNUMX 行:
チェックは、によって記述されたパターンに対して行われます。 /等/iwatch/iwatch.dtd ファイル。 それなし
表示された XNUMX 行では、iWatch は DTD ファイルを使用する必要があるという警告を表示するだけです。
それは走り続けます as XML 検証を行わない場合は通常です。 iWatch の XML 形式は非常に複雑です。
シンプルで分かりやすく、次の DTD を使用します。
<!ATTLIST 構成
文字セット CDATA "utf-8"
>
<!ATTLIST ガード
CDATA #必須の電子メールを送信
名前 CDATA #IMPLIED
>
<!ATTLIST 連絡先
CDATA #必須の電子メールを送信
名前 CDATA #IMPLIED
>
<!ATTLIST パス
タイプ CDATA #必須
アラート (オン|オフ) "オフ"
イベント CDATA #IMPLIED
exec CDATA #IMPLIED
フィルター CDATA #IMPLIED
syslog (オン|オフ) "オフ"
onworks.net サービスを使用して iwatch オンラインを使用する
