写一个小的监控脚本,进行宕机推送

脚本基础内容

脚本是基于IP+端口的监测,TCP协议的。配置参数如下:

#!/bin/b#!/bin/bash

servers=(
    "223.5.5.5 80 这里是备注"
    "114.114.114.114 53 DNS对照组"
)

timeout=3

check_server() {
    server=($1)
    host=${server[0]}
    port=${server[1]}
    note=${server[2]}

    if ! timeout 5 bash -c "echo >/dev/tcp/$host/$port"; then
      current_time=$(date '+%Y-%m-%d %H:%M:%S')
      log="$current_time - $host $port $note 连接失败"
      message="监控点:[四川成都] $host:$port $note 无法访问 ${current_time}"

      curl -G "https://api2.pushdeer.com/message/push" --data-urlencode "pushkey=******************" --data-urlencode "text=${message}" --data-urlencode "desp="
      curl -G "https://api2.pushdeer.com/message/push" --data-urlencode "pushkey=******************" --data-urlencode "text=${message}" --data-urlencode "desp="
      curl  -X "POST" "https://sctapi.ftqq.com/******" -d "title=${message}"
      echo "$log" >> tcp.log
    fi
}

while true; do
    for server in "${servers[@]}"; do
        check_server "$server" &
    done

    wait

    sleep 5
done

相关使用方法

1、运行脚本

nohup sh tcp_monitor.sh &

2、查看脚本运行情况

ps -aux|grep tcp_monitor.sh

 

 

THE END