Linux環境でスクリプトを実行してログファイルをテールすると、別のスクリプトを実行する特定のキーワード(「EndAPP」など)が表示されたらすぐにスクリプトを実行できますか?もしそうなら、どのように?ログをテーリングしてからXを実行するときにキーワードを見つける
あなたはこのコードを使用することができます
3
A
答えて
5
あなたははい、それは簡単ですFile::Tail
use File::Tail;
my $file=File::Tail->new("/some/log/file");
while (defined(my $line = $file->read)) {
system("/path/to/second/script") if($line =~ /EndApp/) ;
}
+0
両方の回答とコメントに感謝しますが、これは私が使い終わったものです。 – Codrguy
3
...
#!/bin/bash
FILE_TO_TAIL=/file/to/tail
PATTERN="EndAPP"
APP_TO_EXEC="app.bin"
tail -1f ${FILE_TO_TAIL} |
while read -r line
do
if [ ${PATTERN}=${line} ]; then
./${APP_TO_EXEC}
fi
done
exit
を使用することができます。 bashやperlを使うことができます。もう一つのヒント:inotifyも役に立ちます。 – hornetbzz