shell脚本域名ping检测结果推送到飞书Webhook
1. 创建飞书 Webhook
首先,你需要在飞书中创建一个 Webhook,以便发送消息。获取 Webhook URL。
2. 编写 Shell 脚本
以下是一个示例脚本,使用 ping 命令检测 IP 地址,并在连续三次失败后发送通知:
#!/bin/bash
# 设置要检测的域名
DOMAIN="www.baidu.com" # 替换为你想检测的IP或者域名
# 设置飞书 Webhook URL
WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/XXXXXXXX" # 替换为你的 Webhook URL
# 失败计数器
failure_count=0
# 当前连接状态,初始为 "reachable"
current_status="reachable"
# 循环检测
while true; do
# 发送 ping 请求,-c 1 表示只发送一次
if ping -c 1 "$DOMAIN" > /dev/null; then
#打印每次ping正常日志
#echo "[$(date)] $DOMAIN is reachable."
failure_count=0 # 重置失败计数器
# 如果之前是不可达状态,发送恢复通知
if [ "$current_status" == "unreachable" ]; then
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "text",
"content": {
"text": "'"$DOMAIN"' 恢复正常."
}
}'
current_status="reachable" # 更新状态
fi
else
#打印每次ping异常日志
#echo "[$(date)] $DOMAIN is unreachable."
((failure_count++)) # 增加失败计数器
# 如果连续失败三次,发送通知
if [ "$failure_count" -ge 3 ]; then
if [ "$current_status" == "reachable" ]; then
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "text",
"content": {
"text": "检测到'"$DOMAIN"'异常,请检查服务状态,请注意!"
}
}'
current_status="unreachable" # 更新状态
fi
fi
fi
# 检测间隔(单位:秒)
sleep 60
done将上述脚本保存为
ping_monitor.sh。赋予脚本执行权限:
chmod +x ping_monitor.sh运行脚本:
./ping_monitor.sh
说明
地址: 你可以将 www.baidu.com 替换为你需要检测的域名/IP 地址。
Webhook URL: 将
your_webhook_url替换为你在飞书中创建的 Webhook URL。ping 命令: 使用
ping -c 1只发送一次请求。失败计数: 如果连续三次检测失败,脚本会通过 Webhook 发送通知。
循环检测: 脚本每分钟执行一次检测。
注意事项
确保你的服务器或计算机能够访问飞书 Webhook。
如果需要在后台运行,可以使用
nohup或screen命令。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用CC BY-NC-ND 4.0协议,完整转载请注明来自 halo.taofile.cn。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

