shell ping监控服务器是否死机/方糖通知
有时候服务器经常死机,但是死机我们又没办法知道,这时候需要一个自动脚本来帮助我们监控服务器是否运行
在linux 下 vim ./ip.sh
添加下面的代码并保存退出,设置文件权限 chmod 777 ip.sh
#!/bin/bash
SCKEY="SCU4316******************************" #方糖通知的SCKEY
IP_array=("f.cqroom.cn" "b.cqroom.cn" "c.cqroom.cn" "d.cqroom.cn" "e.cqroom.cn" "f.cqroom.cn" "g.cqroom.cn" "h.cqroom.cn" "i.cqroom.cn" "j.cqroom.cn" "k.cqroom.cn")
IP_send=( )
IP_send_num=( )
for((i=0;i<${#IP_array[@]};i++));#初始化数组
do
IP_send[$i]=0
IP_send_num[$i]=0
done
while :
do
for((i=0;i<${#IP_array[@]};i++));
do
ping -c 1 ${IP_array[i]} &>/dev/null #三个ping有一个能通,说明服务器正常
a=$?
sleep 2
ping -c 1 ${IP_array[i]} &>/dev/null
b=$?
sleep 2
ping -c 1 ${IP_array[i]} &>/dev/null
c=$?
sleep 2
DATE=$(date +%F" "%H:%M)
echo "$DATE ${IP_array[i]} $a $b $c"
if [ $a -ne 0 -a $b -ne 0 -a $c -ne 0 ];then
if [ ${IP_send_num[$i]} -gt 0 ];then #判断是否多次ping不通 递加延时通知
((IP_send_num[$i]--))
else
IP_send_num[$i]=${IP_send[$i]}
curl -m 10 https://sc.ftqq.com/$SCKEY.send?text=服务器连不上了\&desp=第${IP_send[$i]}次通知%20时间:$(date "+%Y-%m-%d")%20$(date "+%H:%M:%S")%20域名:${IP_array[i]}
echo https://sc.ftqq.com/$SCKEY.send?text=服务器连不上了\&desp=第${IP_send[$i]}次通知%20时间:$(date "+%Y-%m-%d")%20$(date "+%H:%M:%S")%20域名:${IP_array[i]}
echo "$DATE ${IP_array[i]} $a $b $c" > iplog.txt
fi
((IP_send[$i]++))
else
IP_send[$i]=0 #有一次ping通 复位计数
fi
done
done