GNU/Linux >> Linux の 問題 >  >> Linux

キーワードがトリガーされた場合にログファイルを監視するシェルスクリプトは、コマンドを実行しますか?

また、awk を使用してパターンを監視し、パターンが見つかったときに何らかのアクションを実行できることもわかりました:

tail -fn0 logfile | awk '/pattern/ { print | "command" }'

これにより、パターンがログに見つかったときにコマンドが実行されます。コマンドは、シェル スクリプトなどを含む任意の UNIX コマンドにすることができます。


tail -fn0 logfile | \
while read line ; do
        echo "$line" | grep "pattern"
        if [ $? = 0 ]
        then
                ... do something ...
        fi
done

さらに堅牢なアプローチは monit です。このツールは非常に多くのことを監視できますが、そのうちの 1 つは、1 つまたは複数のログを簡単に追跡し、正規表現と照合して、スクリプトをトリガーすることです。これは、監視するログ ファイルのコレクションや、トリガーするイベントが複数ある場合に特に便利です。


Linux
  1. Bashに入力されたすべてのコマンドとすべてのファイル操作をログに記録する方法は?

  2. アクセス許可を特定のファイル パターン/拡張子に変更するには?

  3. ファイルが変更されるたびにコマンドを実行する方法は?

  1. ファイルが見つかった場所でコマンドを実行しますか?

  2. ファイルの存在を確認し、存在しない場合はコマンドを実行するにはどうすればよいですか?

  3. 特定のパターンで最新のログ ファイルを末尾に -f する方法

  1. 現在のディレクトリ内のすべてのファイルに対してコマンドを実行します

  2. Linuxコマンド出力をファイルに出力するには?

  3. cd を実行せずに、特定のディレクトリで特定のコマンドを実行しますか?