#!/bin/bash
check_port() {
if [[ -z "$(lsof -i:$1)" ]]; then
echo "$2"
fi
} # 这里通过lsof监听端口,如果没有请用yum安装lsof
dingpush() {
text="$1已掉线"
data='{"msgtype": "markdown","markdown": {"title":"测试环境","text":"服务器121:'$text' "},"at":{"isAtAll":true}}'
curl --request POST \
--url '这里填写你自己的钉钉机器人的api地址' \
--header 'content-type: application/json' \
--data "$data"
}
while true; do
report_meal=$(check_port 5010 "报餐 ") # 这里调用check_port函数判断各个系统的
fsrv=$(check_port 8585 "图片 ") # 端口是否在被使用,端口号作为变量$1,
enhow=$(check_port 5050 "官网 ") # 系统名称作为变量$2
shc2=$(check_port 5005 "ERP ")
status="$report_meal$fsrv$enhow$shc2" # status拼接所有系统的掉线信息发送钉钉
if [[ ! -z "$status" ]]; then # 如果没有掉线信息,则不触发钉钉告警
dingpush $status
fi
sleep 30 # 30s运行一次
done
08-01
460
02-14
525