【shell】shell腳本監控某個IP地址是否健康

前段時間有個特殊ip,需要隨時監控他是否可以ping通,在ping通的情況下是否存在丟包
研究了一下,特此記錄一下腳本

下面是我的腳本,有許多不足之處,歡迎交流!
#!/bin/bash
#  author :ssiy
# 需求:ping IP通->有丟包->輸出IP通和丟包率;
#                   IP通->無丟包輸出ip正常;
#                   不通 -> 輸出IP不通;
#					 一次Ping 10個包,10分鐘ping一次 ping完一次睡眠10分鐘
# 思路:通過ping 的丟包率來判斷ip是否正常
# 丟包率 100%-->不通-->輸出IP不通
# 丟包率 0%-->不通-->輸出IP正常
# 丟包率 其他-->能ping但有丟包-->輸出丟包率
# 10分鐘ping一次可以通過定時任務來實現,計劃任務格式   “分 時 日 月 星”

# 該ip只是我用來測試的,大家可以根據自己的需求,使用其他ip,如果ip較多,可以統一放到一個文件,用for循環來操作
IP=8.8.8.8

# 取出丟包率的數字,取丟包率是該腳本的核心語句
loss_rate=`ping -c 10 $IP | tail -n 2 | head -n 1 | awk -F ',' '{print $3}' | tr "%" " "  | awk '{print $1}'`
#echo "$loss_rate%"

#  用if來輸出相應對ip判斷的語句
if [ $loss_rate -eq 0 ]
then  
	echo "ip正常!!!"
else 
	if [ $loss_rate -eq 100 ]
     	then
 		echo "ip不通,請檢查!!!"
	else
		echo "ip能ping通,但丟包率爲$loss_rate%!!!"
	fi
fi

定時任務

H/10 * * * *   腳本路徑
# 腳本記得加執行權限

腳本還只是初級版本,我有一個設想:
可以將取出來的ip丟包率保存,當丟包率爲100%時,可以通過python發送郵件告警,這樣可以即時的監控的ip的健康狀態,達到自動化的目的,但python腳本我不是很熟,會盡力學習看看能不能實現該功能!

本人對shell腳本比較感興趣,暫時還只能寫比較簡單的,如果有遇到不會寫的,歡迎留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章