#!/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
附:發送郵件需要的配置:
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]:收件人地址