Incron
incron は、"inotify cron" システムです。これはデーモンとテーブルマニピュレーターで構成されており、通常の cron と同様に使用できます。違いは、inotify cron は時間間隔ではなく、ファイルシステムイベントを処理する点です。
インストール
有効化と自動起動
パッケージをインストールしても、デフォルトではデーモンは有効になりません。incrond.service
を有効化してください。
設定
Incrontab は直接編集してはいけません。incrontab を操作するときは incrontab
プログラムを使ってください。
incrontab を使う
incrontab を確認するには以下のコマンドを実行:
$ incrontab -l
incrontab を編集するには:
$ incrontab -e
incrontab を削除するには:
$ incrontab -r
incrond をリロードするには:
$ incrontab -d
他のユーザーの incrontab を編集するには、以下のコマンドを root で実行:
# incrontab -u user
Incrontab フォーマット
incrotab ファイルには1行ごとに監視するディレクトリ・ファイルとイベント、実行するコマンドを指定します。
incrontab の基本的なフォーマットは以下のようになります:
path mask command
- path
- は incrond が変更を監視するディレクトリまたはファイルです
- mask
- は incrond が監視するファイルシステムのイベントの種類です。カンマで区切って複数のパラメータを指定できます。
- command
- はファイルシステムのイベントが発生したときに実行するコマンドです。
マスクタイプ
incrontab は、監視するファイルシステムイベントを指定するためにマスクタイプを使用します。その他のオプションについては、inotify(7) を参照してください。
ファイルをアクセスまたは読み取った場合にコマンドをトリガーするには:
IN_ACCESS
ファイルのメタデータ (例えば、タイムスタンプ、パーミッション) が変更された場合にコマンドをトリガーするには:
IN_ATTRIB
書き込み用に開かれたファイルが閉じられた場合にコマンドをトリガーするには:
IN_CLOSE_WRITE
書き込み用に開かれていないファイルまたはディレクトリが閉じられた場合にコマンドをトリガーするには:
IN_CLOSE_NOWRITE
監視対象ディレクトリにファイルまたはディレクトリが作成された場合にコマンドをトリガーするには:
IN_CREATE
監視対象ディレクトリからファイルまたはディレクトリが削除された場合にコマンドをトリガーするには:
IN_DELETE
監視対象のファイルまたはディレクトリが削除された (または別のファイルシステムに移動された) 場合にコマンドをトリガーするには:
IN_DELETE_SELF
ファイルが変更された場合にコマンドをトリガーするには:
IN_MODIFY
監視対象のファイルまたはディレクトリがファイルシステム内で移動された場合にコマンドをトリガーするには:
IN_MOVE_SELF
ファイルまたはディレクトリが監視対象ディレクトリから移動された場合にコマンドをトリガーするには:
IN_MOVED_FROM
ファイルまたはディレクトリが監視対象ディレクトリに移動された場合にコマンドをトリガーするには:
IN_MOVED_TO
監視対象のファイルまたはディレクトリが開かれた場合にコマンドをトリガーするには:
IN_OPEN
カスタムマスクタイプ
Incrond は、監視動作を変更するための追加のカスタムイベントタイプを提供します。
例えば、現在のイベントが完全に処理されるまでイベントの監視を一時停止するには、イベントリストに loopable=true を追加します。例:
IN_CLOSE,loopable=true
loopable イベントが有効になっているイベントは、関連付けられたコマンドが終了するまで再び発生しません。
カスタムマスクタイプの完全なリストについては、incrontab(5) を参照してください。