局域网主机定时ping实现监控

需求

某天早上发现有一台服务器宕机了,看了看日志大概在前一天18:30后就没有记录了。
希望能够在服务器宕机时第一时间收到通知,两次通知之间冷却60分钟。

实现

使用局域网内一台稳定的嵌入式小设备对目标服务器进行24小时监控
每10分钟ping一次目标主机,ping不通则发送通知给我并生成flag禁用通知1小时。

代码

#!/bin/bash

flag=/dev/shm/.offline_flag
# if already fail, silence 60min
if [ -e $flag ];then
find $flag -mmin +60 -exec rm -rf {} ;
exit 0
fi

ping -c 1 10.0.1.3 > /dev/null
if [ $? -ne 0 ];then
# send msg via webhook
curl -X POST xxxxxxxxx
touch $flag
fi

加入crontab计划任务,执行频率10min

crontab -e
*/10 * * * * /path/to/crash_monitor.sh

延伸

需要可视化可以参考UptimeRobot
最低每 5 分钟检查一次你设定的网站或服务器,最多可以免费检查 50 个网站
还可以宕机自动发邮件,十分方便。

原文地址:https://www.cnblogs.com/azureology/p/14339356.html