shell腳本自動(dòng)檢測接口業(yè)務(wù)
大家好,我是阿峰,目前在一家創(chuàng)業(yè)公司上班,公司剛剛起步運(yùn)維是短板,有許多需要完善的工作,比如業(yè)務(wù)中斷是客戶第一時(shí)間發(fā)現(xiàn)并反饋回來很是被動(dòng)。針對(duì)該問題進(jìn)行分析發(fā)現(xiàn)是請(qǐng)求接口返回502導(dǎo)致的,于是決定從接口入手,使用shell腳本輪詢檢測接口是否正常,異常情況發(fā)送短信通知給技術(shù),技術(shù)可以在第一時(shí)間進(jìn)行問題定位,以達(dá)到快速解決的目的。
#!/bin/bash
#Author:
#設(shè)置變量,url為你需要檢測的目標(biāo)網(wǎng)站的網(wǎng)址(IP或域名)
#入口檢測
url=https://k.baidu.com/mogaiapi.php/v1.main/in
#數(shù)據(jù)接口檢測
otherurl=https://k.baidu.com/mogaiapi.php/v1.vod/types
#定義函數(shù)check_http:
#使用curl命令檢查http服務(wù)器的狀態(tài)
#-m設(shè)置curl不管訪問成功或失敗,最大消耗的時(shí)間為5秒,5秒連接服務(wù)為相應(yīng)則視為無法連接
#-s設(shè)置靜默連接,不顯示連接時(shí)的連接速度、時(shí)間消耗等信息
#-o將curl下載的頁面內(nèi)容導(dǎo)出到/dev/null(默認(rèn)會(huì)在屏幕顯示頁面內(nèi)容)
#-w設(shè)置curl命令需要顯示的內(nèi)容%{http_code},指定curl返回服務(wù)器的狀態(tài)碼
check_http(){
status_code=$(curl -m 5 -s -o /dev/null -w %{http_code} $url)
other_code=$(curl -m 5 -s -o /dev/null -w %{http_code} $otherurl)
}
while :
do
check_http
if [ $status_code -ne 200 ]
then
#echo "$url入口連接異常$status_code"
curl -d "token=XDjd" https://api.baidu.com/api.php/user/customsms
fi
if [ $other_code -ne 200 ]
then
#echo "$url連接異常$other_code"
curl -d "token=XDjd" https://api.baidu.com/api.php/user/customsms
fi
sleep 5
done
最后,別忘了設(shè)置開機(jī)自啟動(dòng)
$ chmod +x auto_run_script.sh
然后,我們再將腳本添加到 /etc/rc.d/rc.local 文件最后一行:
$ vim /etc/rc.d/rc.local
/home/alvin/auto_run_script.sh評(píng)論
圖片
表情
