Linux用shell腳本監控網站運行狀態併發告警郵件

#!/bin/bash

#

DATE=`date "+%Y.%m.%d-%H:%M:%S"`

ACCESS_DIR=/root/curl/access

ERRO_DIR=/root/curl/erro

SUCCESS_DIR=/root/curl/success

FILE=`date "+%Y.%m.%d-%H"`


WRONG(){

    cat $ERRO_DIR/$FILE | awk -F ' ' '{print $2$3"\n"}'#有錯誤狀態碼的域名

}

CURL(){

for i in `cat /root/sites.txt`;do        #sites.txt得先放在指定目錄,裏面放了你想監控的域名

    STATUS_CODE=`curl -o /dev/null -s -w %{http_code} $i`

      if [ $STATUS_CODE -ne 200 ];then

         echo -e "$DATE  $i:\t$STATUS_CODE" | tee -a $ERRO_DIR/$FILE

      else

         echo -e "$DATE  $i:\t$STATUS_CODE" | tee -a $SUCCESS_DIR/$FILE

      fi

done

}


NUM=`CURL  | grep -v 200 | wc -l`

     echo $NUM

        if [ $NUM -ge 1 ];then

          echo -e "Web site have $NUM can't be accessed\nWrong name is:`WRONG`" | mail -s "Web Site Down" [email protected]

          else

          echo "$DATE All Web Site is good" &>>$ACCESS_DIR/$FILE.log

        fi

wKiom1b98J2iKSh9AACSFdw-quE943.png

wKiom1b98J3TnoOiAAA7gq-Ao_4646.png

附:發送郵件需要的配置:

1.修改/etc/mail.rc (/etc/mail.rc)

2.set [email protected] smtp=smtp.qq.com  set [email protected] smtp-3.auth-password=123456789 set smtp-auth=login


PS:

from:是發送的郵箱

smtp:是發生的外部smtp服務器的地址 

smtp-auth-user:是外部smtp服務器認證的用戶名(你指定的郵箱)

smtp-auth-password:是外部smtp服務器認證的用戶密碼(郵箱的密碼)

smtp-auth:是郵件認證的方式

發送一封郵件測試一下:

echo "hello,word" | mail -s "test" [email protected] 

-s後面的是郵件標題

[email protected]:收件人地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章