天天看點

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

網站需要定時更新計劃任務排程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)

if curl $i|grep -q "成功"

echo ok

/wwwroot/baojing/fetion --mobile=15956xxx --pwd=254605 --to=159569xxxx --msg-utf8="$i is DOWN!"

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

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

下面這種是需要轉換字元集編碼的:

if curl $i |iconv -f gb2312 -t utf-8|grep -q "OK"

/wwwroot/baojing/fetion --mobile=159569xxxx --pwd=254605 --to=159569xxxx --msg-utf8="$i is DOWN!"

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