寫一個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