一个简单的需求,通过shell脚本用ping监控主机,5分钟ping一次,发现ping不通的主机就发消息到钉钉上面
两个文件一个check.sh,一个ip.txt
ip.txt一行一个IP,
Linux添加计划任务,5分钟执行一次
crontab -e
添加 */5 * * * * /root/dingtalk/check.sh
check.sh代码,加粗的地方为要修改的
#!/bin/bash
date=`date +"%m月%d日%H时%M分%S秒"`
dingtalkapi="https://oapi.dingtalk.com/robot/send?access_token=xxxxx"
logfile="/root/dingtalk/ping.log"
function dingtalk(){
curl "$dingtalkapi" -H 'Content-Type: application/json; charset=UTF-8' -d "{\"msgtype\": \"text\",\"text\": { \"content\":\" ---!注意 !丢包率$per %---
$1 速度 $avg ms
$date \" }}"
}
for i in `cat /root/dingtalk/ip.txt`;
do
IP=`echo $i |awk '{print $1}'`
des=`echo $i|awk '{print $2}'`
date=`date +"%m月%d日%H时%M分%S秒"`
ping -w 5 -i 0.2 -c 10 $IP > $logfile
per=`awk '/loss/{printf("%2d", $6)}' $logfile`
avg=`awk '/avg/{print $5}' $logfile`
if [ $per -qt 30 ] ; then
dingtalk $IP
fi
done
代码截图
下载代码dingtalk