shell_08:error_log日記增長則告警

寫一個shell腳本,每隔30秒查看一第二天記文件/data/logs/error.log,看有沒有新的日記,若是有,須要發郵件告警python

判斷時間點,若是是 0 點 0 分需考慮特殊狀況,記錄上一第二天記的行數,對比本第二天記行數和上一第二天記行數;shell

假設:1)   該日記0點0分會清空                 2)  郵件腳本路徑/usr/local/sbin/mail.pybash

思路:用 while 循環,  sleep 30,spa

[root@localhost_002 shell]# cat 12.sh 
#!/bin/bash
while : 
do
  t=`date +%H%M`
  if [ $t == "00" ]          #判斷是不是00:
  then
    rm -fr /tmp/log_line.txt  
    sleep 60
  fi

if [ ! -f /tmp/log_line.txt ]
then
  touch /tmp/log_line.txt
  wc -l /data/log/error.log|awk '{print $1}' >> /tmp/log_line.txt   
fi
last_n=`tail -1 /tmp/log_line.txt`               #新增日記的行;
n=`wc -l /data/logs/error.log|awk '{print $1}'`  #總日記的行;
echo $n >> /tmp/log_line.txt
if [ $n -gt $loat_n ]
then
  python /usr/local/sbin/mail.py yuanhh@163.com "錯誤日記增長" 「tail /data/log/errlor.log」
fi
   sleep 30
done

第二個方法:本身整理:code

#!/bin/bash
mail=yuanhh@163.com
 logfile=/data/logs/error.log
t1=`date +%H`
t1=`date +%M`
n=`cat $logfile |wc -l`
while  :
do
n1=`cat $logfile |wc -l`
if  [  -z $n  ]   ||   [  -z  $n1  ]
then 
         echo  "The  value none"
         exit
fi
if [ $n1  -gt  $n  ]
then  
/usr/local/sbin/mail.py $mail  "error.log "   "errorlog  增長"
fi
if [ $t1 == "00" -a  $t2 == "00" ]
      then
              echo  $n  > /tmp/1.log 
             echo  $n1  >> /tmp/1.log 
fi
sleep  30
done
相關文章
相關標籤/搜索