我实现了每周公开输出 fail2ban 报告以便查看

输出效果如下所示。
fail2ban-report
已在上方公开。
说到需求,这确实非常小众。
自动化
将从标准输入接收到的 fail2ban-client status <jail> 输出结果转换为简单的 HTML。
此外,这个输出过程本身是完全自动化的。在我的情况下,由于存在两台作为缓存服务器的服务器,因此需要同步输出。
因为可能会出现 HTML 文件仅存在于其中一台 Nginx 服务器上的情况。
其工作机制如下:
创建一个包含同步用 Shell 脚本、静态文件和 HTML 的 Git 仓库
git pull 同步仓库
↓
从 fail2ban-client status 获取规则名称
↓
通过管道将现有规则的 fail2ban-client status <jail> 输出传递给 f2b-report 以生成 HTML 文件
↓
根据当前目录中存在的 *.html 文件生成 index.html
↓
复制到 /usr/local/www/ 下的 f2b-report 专用目录
↓
执行 git commit && git push
最后将这些步骤分别设置到 cron 中即可。
此外,该 Shell 脚本会将传入的第一个参数作为 prefix 来生成 html 文件。
作为环境变量,我会同时传递 f2b-report 的可执行文件路径和复制目标路径来执行。