#检查错误日志里是否有ERROR,有的话,邮件报警
#每分钟监控一次
#*/1 * * * * /download/dandan/shell_script/monitor_errlog.sh > /download/dandan/shell_script/monitor_errlog.log 2>&1
#每个机器生成一个错误日志文件
#由于公司数据库服务器的错误日志都是基于主机名的,所以还得注意hostname。
LogDir='/download/dandan/shell_script/err_logs/'
#由于每分钟都要监控一次,而定时任务会在每一分钟开始就监控,而当前分钟的错误尚未记录下来,故监控上一分钟的错误
AnalyzeDate=`date -d "1 minutes ago" "+%y%m%d %H:%M"`
ErrorLogDir1='/data/server/mysql_3307/'
HostGroup1=('10.192.200.100' '10.192.200.202')
source='……'
target='……'
MailUser='……'
MailPassword='……'
mkdir -p $LogDir
echo $AnalyzeDate
for host1 in ${HostGroup1[@]}
do
hostname1=`ssh $host1 hostname`
ssh $host1 cat $ErrorLogDir1$hostname1'.err' | grep "$AnalyzeDate" | grep '\[ERROR\]' > $LogDir$host1.err
#ssh $host1 cat $ErrorLogDir1$hostname1'.err' | grep "$AnalyzeDate" | grep '\[Warning\]' > $LogDir$host1.err
if test -s $LogDir$host1.err;
then
echo $(cat $LogDir$host1.err)
title1=$host1' errlog alert'
content1=$(cat $LogDir$host1.err)
/usr/local/bin/sendEmail -f $source -t $target -s hq.smtp.chinaunicom.cn -u $title1 -xu $MailUser -xp $MailPassword -m $content1
else
echo 'there are no errors in the '$host1\''errlog.'
fi
done
#每分钟监控一次
#*/1 * * * * /download/dandan/shell_script/monitor_errlog.sh > /download/dandan/shell_script/monitor_errlog.log 2>&1
#每个机器生成一个错误日志文件
#由于公司数据库服务器的错误日志都是基于主机名的,所以还得注意hostname。
LogDir='/download/dandan/shell_script/err_logs/'
#由于每分钟都要监控一次,而定时任务会在每一分钟开始就监控,而当前分钟的错误尚未记录下来,故监控上一分钟的错误
AnalyzeDate=`date -d "1 minutes ago" "+%y%m%d %H:%M"`
ErrorLogDir1='/data/server/mysql_3307/'
HostGroup1=('10.192.200.100' '10.192.200.202')
source='……'
target='……'
MailUser='……'
MailPassword='……'
mkdir -p $LogDir
echo $AnalyzeDate
for host1 in ${HostGroup1[@]}
do
hostname1=`ssh $host1 hostname`
ssh $host1 cat $ErrorLogDir1$hostname1'.err' | grep "$AnalyzeDate" | grep '\[ERROR\]' > $LogDir$host1.err
#ssh $host1 cat $ErrorLogDir1$hostname1'.err' | grep "$AnalyzeDate" | grep '\[Warning\]' > $LogDir$host1.err
if test -s $LogDir$host1.err;
then
echo $(cat $LogDir$host1.err)
title1=$host1' errlog alert'
content1=$(cat $LogDir$host1.err)
/usr/local/bin/sendEmail -f $source -t $target -s hq.smtp.chinaunicom.cn -u $title1 -xu $MailUser -xp $MailPassword -m $content1
else
echo 'there are no errors in the '$host1\''errlog.'
fi
done