2011-10-24 4 views
3

Linux環境でスクリプトを実行してログファイルをテールすると、別のスクリプトを実行する特定のキーワード(「EndAPP」など)が表示されたらすぐにスクリプトを実行できますか?もしそうなら、どのように?ログをテーリングしてからXを実行するときにキーワードを見つける

あなたはこのコードを使用することができます
+0

を使用することができます。 bashやperlを使うことができます。もう一つのヒント:inotifyも役に立ちます。 – hornetbzz

答えて

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