一、建立腳本文件monitorserver.sh, 腳本附在後面json
二、使用crontab進行每三分鐘定時檢查服務器
crontab -eapp
*/3 * * * * /.../monitorserver.shcurl
三、腳本使用說明post
須要根據本身須要,填寫服務器,計數文件路徑,發送人郵箱和收件人郵箱,這裏採用的是post請求,須要填寫傳參參數。url
#!/bin/shspa
#服務器.net
BASEURL=http://mysever.comcode
#計數文件路徑orm
COUNT="/home/monitor/serviceExists/production/count"
#Appq計數文件路徑
APPCOUNT="/home/monitor/serviceExists/production/appCount"
#控制郵件發送次數
NUMBER=3
#控制中止時間
NUM=7
monitoring_server(){
if [ ! -f $1 ] ;then
touch $1
#插入數據
echo "0" > $1
#在第一行下面插入0,
sed -i '1a\0' $1
fi
#獲取count文件第二行數據,該數據是用來控制中止多少分鐘後再訪問,0表示發送接口請求,$NUM限制最大時間
total=$(sed -n '2p' "$1")
echo total:$total
echo Count_PATH:$1
#let "total=total+'0'"
if [ ${total} -eq 0 ];then
#獲取https狀態碼
http_code=$2
echo http_code:$http_code
#https狀態碼爲200,表示請求成功
if [ $http_code == "200" ]
then
#登陸成功後,將第一行數設置爲0
sed -i '1c\0' "$1"
echo "服務正常"
echo $6
else
#獲取第一行數據
count=$(sed -n '1p' "$1")
echo $count
#count變量+1
let "count=count+"1""
#從新設置第一行數據
sed -i "1c\ $count" $1
echo count:$count
#判斷連續發生次數是否超過總數
if [ ${count} -le $4 ]; then
#第一郵箱是發送者,其餘的郵箱是接受者,發送者須要在Linux環境下設置。mail設置連接:http://my.oschina.net/u/2473136/blog/608149
echo -e '(本郵件是程序自動下發的,請勿回覆!)\n\n' $5 '\n' $cnt | mail -s "警告:$5" -r fasongzheyouxiang@163.com shoujianrenyouxiang@163.com xxxx@163.com
echo "$5發送郵件"
else
# 從新設置第一行,第二行數據
sed -i '1c\0' $1
sed -i '2c\1' $1
echo "$5連續3次,30分鐘後再發送郵件"
fi
echo $result
fi
#中止時間處理
elif [ ${total} -le $3 ];then
total=$(sed -n '2p' "$1")
let "total=total+"1""
sed -i "2c\ $total" $1
echo $total
else
sed -i '2c\0' $1
echo "從新監測服務"
fi
}
#郵件標題
title="商家後臺服務異常"
#獲取商家後臺接口請求成功參數
result=$(curl -d "username=XXXXXX&password=XXXXX" "$BASEURL/m/auth/login.do")
#商家後臺接口請求,獲取https狀態碼
http=$(curl -o /dev/null -s -w %{http_code} -d "username=XXXXXX&password=XXXXXX" "$BASEURL/m/auth/login.do")
#商家後臺服務監測
monitoring_server $COUNT $http $NUM $NUMBER $title $result
#郵件標題
Apptitle="商家App服務異常"
#獲取商家APP接口請求成功參數
AppResult=$(curl -H "Content-type: application/json" -d '{"username":"XXXXXXX","password":"XXXXX","imei":"a707644c-3f25-4abe-bb48-8d64ea49d1ea","deviceCode":"867271029123113"}' "$BASEURL/merchantuser/login.do")
#商家APP接口請求,獲取https狀態碼
App_http=$(curl -o /dev/null -s -w %{http_code} -H "Content-type: application/json" -d '{"username":"XXXXXX","password":"XXXXXX","imei":"a707644c-3f25-4abe-bb48-8d64ea49d1ea","deviceCode":"867271029123113"}' "$BASEURL/merchantuser/login.do")
#商家App服務監測
monitoring_server $APPCOUNT$App_http$NUM$NUMBER$Apptitle$AppResult