安装依赖
# 检测端口nc 发送邮件mailx
yum install nc mailx -y
修改主机名称
sudo hostnamectl set-hostname dibai01
自启脚本
#!/bin/bash
# 定义要监控的端口列表
PORTS=({8381..8386})
# 日志文件路径
LOG_FILE="/root/logs/port_nc.log"
# 检测端口是否存活并处理
for PORT in "${PORTS[@]}"
do
# 检查端口状态
nc -zv 127.0.0.1 $PORT &>/dev/null
if [ $? -ne 0 ]; then
# 如果端口不存活,记录日志并执行操作
echo "$(date): Port $PORT is DOWN." >> $LOG_FILE
# 执行操作,例如重启服务或发送通知
case $PORT in
8381|8382|8383|8384|8385|8386)
echo "Restarting Port $PORT" >> $LOG_FILE
ssserver -c /etc/shadowsocks.json -d stop
sleep 1
ssserver -c /etc/shadowsocks.json -d start
sleep 1
echo "Port $PORT is DOWN on $(hostname),The shadowsocks service has been restarted" | mail -s "Port $PORT Alert" lbiz@qq.com
;;
*)
echo "No predefined action for port $PORT" >> $LOG_FILE
;;
esac
else
echo "$(date): Port $PORT is UP." >> $LOG_FILE
echo "Shadowsocks No problem." >> $LOG_FILE
fi
done
添加定时任务
# 编辑定时任务
crontab -e
# 添加定时任务
*/10 13-22 * * * /root/scripts/port-nc.sh
0 10-12 * * * /root/scripts/port-nc.sh
# 两条定时任务表示:每天的13-22点,每隔10分钟执行一次;每天的10-13点,每隔一小时执行一次
# 查看定时任务
[root@dibai01 scripts]# crontab -l
0 * * * * /root/scripts/port-nc.sh