You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 11下Fail2ban状态检测与自动重启脚本需求

Debian 11 自动检测并重启 Fail2ban 的 Bash 脚本

以下脚本会定期检查 Fail2ban 服务状态,一旦发现服务未正常运行,自动重启并记录操作日志:

#!/bin/bash

# 定义日志文件路径,可根据需求修改
LOG_FILE="/var/log/fail2ban_restart.log"

# 检测 Fail2ban 是否处于活跃状态
if ! systemctl is-active --quiet fail2ban; then
    # 记录重启时间和原因
    echo "$(date '+%Y-%m-%d %H:%M:%S') - Fail2ban 未运行,执行重启操作" >> "$LOG_FILE"
    # 重启 Fail2ban 服务
    systemctl restart fail2ban
    # 验证重启是否成功
    if systemctl is-active --quiet fail2ban; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') - Fail2ban 重启成功" >> "$LOG_FILE"
    else
        echo "$(date '+%Y-%m-%d %H:%M:%S') - 警告:Fail2ban 重启失败,请手动检查" >> "$LOG_FILE"
    fi
else
    # 可选:记录服务正常状态(不需要可注释掉)
    # echo "$(date '+%Y-%m-%d %H:%M:%S') - Fail2ban 运行正常" >> "$LOG_FILE"
    :
fi

脚本说明

  • systemctl is-active --quiet fail2ban:静默检测服务状态,无输出,通过退出码判断是否活跃(0=活跃,非0=未运行)
  • 日志文件默认存放在/var/log/fail2ban_restart.log,可自行修改路径
  • 重启后会再次验证服务状态,确保操作有效并记录结果

部署步骤

  1. 将脚本保存为/usr/local/bin/check_fail2ban.sh(路径可自定义)
  2. 赋予执行权限:
    chmod +x /usr/local/bin/check_fail2ban.sh
    
  3. 设置定时任务,让脚本定期运行(比如每5分钟检测一次):
    执行crontab -e,添加如下内容:
    */5 * * * * /usr/local/bin/check_fail2ban.sh
    
    保存退出后,crontab会自动生效

日志查看

需要查看重启记录时,直接查看日志文件即可:

cat /var/log/fail2ban_restart.log

内容的提问来源于stack exchange,提问作者Tomasz M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:22:05