基於飛信對系統計劃任務crontab報警監控

科技小能手發表於2017-11-12
網站需要定時更新計劃任務排程php去產生更新資料,如果php不能被更新排程產生資料那麼報警,前提是php頁面能正常被訪問到,通過curl等去觸發一下,類似於啟用php程式。

shell指令碼:
apache編碼兩種不同 一種直接curl可以獲得到頁面資訊,另外一種需要轉字符集編碼。
A)
while read i
do
GET_REPORT=$(curl $i | grep [成功])
if [ “$?” -eq “0” ] 
then
echo “OK”
else
/wwwroot/baojing/fetion –mobile=15956xxxx –pwd=254605 –to=15956xxxx –msg-utf8=”$i is DOWN!”
fi 
done<0.txt


B)
while read i
do
if curl $i|grep -q “成功”
then
echo ok
else
/wwwroot/baojing/fetion –mobile=15956xxx –pwd=254605 –to=159569xxxx –msg-utf8=”$i is DOWN!”
fi 
done<0.txt

A)和 B)兩種用法匹配應該是有區別的但是我在測試的沒發現區別,[成功] 這裡應該grep的結果裡絕對的只允許成功二字才算正確,”成功” 這裡匹配的結果包含 成功 即可算正確的。

註釋:0.txt 這個檔案裡是php的url 要啟用這些url產生資料更新。因為我去啟用php程式化那麼php頁面會出現成功的關鍵字。我根據頁面的提示來匹配,匹配不到關鍵字就報警。


下面這種是需要轉換字符集編碼的:
while read i
do
if curl $i |iconv -f gb2312 -t utf-8|grep -q “OK”
then
echo ok
else
/wwwroot/baojing/fetion –mobile=159569xxxx –pwd=254605 –to=159569xxxx –msg-utf8=”$i is DOWN!”
fi 
done<1day.txt

註釋:1day.txt 這個檔案裡是每天需要定時啟用的php url。

(註釋:/wwwroot/baojing/fetion –mobile=159569xxxx –pwd=254605 –to=159569xxx –msg-utf8=”$i is DOWN!” 這個地方是飛信的路徑,通過飛信來實時報警到手機的。)

再把這個指令碼的執行路徑放到crontab裡設定定時執行即可(指令碼和*.txt為同一目錄)。


本文轉自 liang3391 51CTO部落格,原文連結:http://blog.51cto.com/liang3391/456569



相關文章