錯誤日誌監控報警腳本

寫在前面:mysql


在實際工做中,按期檢查數據庫錯誤日誌是必不可少的工做項。可是檢查的時候卻不必定產生了新的錯誤信息,或者說咱們更加但願永遠不要有錯誤信息纔好,由於這表示咱們的數據庫是健壯的。這種狀況下,沒法預知錯誤信息何時產生,而若是咱們檢查錯誤日誌又常常是正常的,很容易造成思惟慣性,長此以往沒有報錯信息,咱們很容易忽略這一工做項。可是錯誤日誌對於咱們來講又是必不可少的,此時,咱們就但願,何時產生錯誤信息,就直接郵件報警通知我,我就能夠騰出時間來作一些更有意義的事情了。若是你也有這種需求,那麼本文可能會幫到你。sql


腳本文件:
數據庫


cat monitor_errorlog.sh
#!/bin/bash
#錯誤日誌監控報警腳本

#監控日期
time=`date +%F`
#time=2018-06-02

cd /home/dbalzb

#按照日期生成error日誌監控文件,首先檢測當天error日誌是否生成過
ls errorlog-$time.txt &> /dev/null

#狀態返回值爲非0,即表示當天未生成過
if [ $? -ne 0 ];then
    cat /home/data/mysql/error.log | grep "$time" | egrep -i 'error|warning' > errorlog-$time.txt
    #判斷當天是否有錯誤日誌
    num=`cat errorlog-$time.txt |wc -l`
    if [ $num -ne 0 ];then
        mutt lizibin_1@126.com -s "errorlog3306" < errorlog-$time.txt
    fi
    md5sum errorlog-$time.txt > md5-errorlog-$time.txt
else
    cat /home/data/mysql/error.log | grep "$time" | egrep -i 'error|warning' > errorlog-$time-new.txt
    #第二次及之後執行的腳本文件會生成新的errorlog文件,並生成新的md5sum值
    md5sum errorlog-$time-new.txt >> md5-errorlog-$time.txt
    
    str1=`cat md5-errorlog-$time.txt | sed -n '1p' | awk '{print $1}'`
    str2=`cat md5-errorlog-$time.txt | sed -n '2p' | awk '{print $1}'`

    #num1=`cat errorlog-$time-new.txt |wc -l`
    #cat errorlog-$time.txt >> errorlog-$time-history.txt

    #對比兩個文件的md5sum值來判斷是否有新的錯誤日誌生成
    if [ $str1 != $str2 ];then
        mutt lizibin_1@126.com -s "new-errorlog3306" < errorlog-$time-new.txt
        #cat errorlog-$time-new.txt >> errorlog-$time-history.txt
    fi
    
    /bin/rm -f errorlog-$time-new.txt
    sed -i '2d' md5-errorlog-$time.txt
fi
bash


添加計劃任務:(每小時執行一次,可自行調整)ide

5 */1 * * * sh /home/dbalzb/monitor_errorlog.shspa


條條大路通羅馬,你是怎麼動態監控數據庫錯誤日誌的呢?歡迎下方留言。日誌

相關文章
相關標籤/搜索