shell script
likeを使用してログファイルを監視する方法はありますtail -f /var/log/errorlog.txt
か?down
キーワードのようなものが表示された場合は、を生成SNMPTRAP
しsnmp manager
て監視を続行します
SNMP
生成できるスクリプトがありますが、SNMPTrap
次のようになります。
snmptrap -v v2c -c community host "Error message"
スクリプト名が snmp.sh
私の質問は、以下の操作を実行する方法です
提案に従って、私はこれを試しました
tail -F /data/log/test.log |
egrep -io 'got signal 15 | now exiting' |
while read -r line ;
do
case "$line" in
"got signal 15")
echo "hi"
;;
"now exiting")
echo "hi2"
;;
*)
esac
done
しかし、問題は、新しいログの詳細が追加されたときはいつでも、ここではcaseステートメントでテールが機能せず、caseステートメントに移動せず、出力をエコーすることです。
cat / less / moreを使用すると、出力を取得できます
誰かが私がここでどんな間違いをしたか教えてもらえますか?
前もって感謝します
あなたが望むパターンはこれのように聞こえます:
tail -f /var/log/errorlog.txt | grep -e down -e unmounted | while read -r line
do
case "$line" in
down)
./snmp.sh …
;;
unmounted)
./snmp.sh …
;;
*)
echo "Unhandled keyword ${line}" >&2
exit 1
esac
done
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加