0

エラーをgrepしてファイルに書き込み、エラーの発生回数/回数を確認するシェルスクリプトを作成する必要があります。カウントが数を超えた場合は、詳細を含むエラーをメールで送信する必要があります。これまでのところこれを書いていますが、続けることができません..助けてください

#!/bin/bash
h1=`hostname`
d1=`date`
XYZLOGS=<dir@ which log located>s
for fname in $XYZLOGS
do
XYZ=$(basename $fname)
f=${fname}/XYZLog.log
var=`tail -5000 $f | grep "Server Error" -C 20`
echo "$var" >/tmp/XYZlogcopy.txt
var1=`tail -5000 $f | grep "Server Error" |wc -l`
if [$var1 -eq "5"] ;
then
if [ ! -z "$var" ] ;
then
echo "$var error on $cbp on server $h1 @ $d1" | mailx -s "error on $xyz" <mail address>
break
else
echo "No matching error found on server $h1 @ $d1" >>/tmp/jobrun.txt
fi
fi
done
4

1 に答える 1

0
if [$var1 -eq "5"] ;

これは、正確に 5 つのエラーが発生した場合のみを処理することを意味します。試す

if [$var1 -ge "5"] ;

代わりは。

今後の参考のためにhttp://tldp.org/LDP/abs/html/comparison-ops.htmlを使用してください

于 2013-06-11T10:39:07.557 に答える