2017-06-14 15 views
1

スクリプトを書くのに役立ちます。以下はログフォーマットです。 LIVEログにキーワードを検索するスクリプトを書いてみたい。サーバを停止したと仮定して、シャットダウンまたはforce_shutdownが表示され、 と表示され、「サーバのシャットダウンが$ userによって開始されました」というログにも表示されます。 シェルスクリプトを使用してログを監視し、メールを送信

<Apr 19, 2017 1:11:00 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING> 
<Apr 19, 2017 1:11:06 PM EDT> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.> 
<Apr 19, 2017 1:11:06 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to shutdown> 
<Apr 19, 2017 1:11:06 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to force_shutdown> 

<Jan 9, 2008 6:50:30 PM EST> <Notice> <WebLogicServer> <BEA-000388> <JVM 
called WLS shutdown hook. The server will force shutdown now> 
<Jan 9, 2008 6:50:30 PM EST> <Alert> <WebLogicServer> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>> 
<Jan 9, 2008 6:50:30 PM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN> 

は、それが対決しているユーザーがいたとき、正確なタイムスタンプを持つすべての情報サーバのIPおよびサーバホストをgrep検索したい.ANDユーザーにすべての詳細をユーザーにメールを送信します。あなたの後

#!/bin/bash 

LOG_FILE="/var/log/foo" 

tail -n 0 -f "$LOG_FILE" | while IFS= read -r line; do 
    echo $line 
done 

:(スクリプトファイル全体を読んでいない、単に新しい未来行の発言:) は、あなたがそのようなスクリプトを使用してファイルを生きるで読むことができる私に

答えて

0

を助けてください簡単grep

#!/bin/bash 

LOG_FILE="/var/log/foo" 
SEARCHED="Server shutdown" 

tail -n 0 -f "$LOG_FILE" | while IFS= read -r line; do 
    if [ $(echo "${line}" | grep "${SEARCHED}") ] ; then 
     echo "String find in : $line" 
    fi 
done 

そして、最後の部分であなたがしたい文字列を検索することができ、あなたが望むものを抽出し、それを送信するためにawkで行を解析することができます。 Googleで検索すると、多くの例が見つかります:)

関連する問題