Discourse-health-check:Discourse 服务器的一次性 CLI 概览

这是我为自己论坛编写的一个小型 Bash 脚本,可一次性提供 Discourse 服务器的健康概览。分享出来,供需要此类快速概览的用户参考。

检查系统资源:Docker、Discourse 服务(Postgres、Redis、Nginx、Unicorn、Sidekiq)、备份新鲜度、TLS 以及基本安全项。最后输出通过/警告/严重摘要,并返回适用于 cron 的退出码。

安装

curl -O https://raw.githubusercontent.com/haydenjames/discourse-health-check/main/discourse-health-check.sh
chmod +x discourse-health-check.sh
sudo ./discourse-health-check.sh

源代码、选项及 cron 示例请参见 README:

9 个赞

Discourse 不运行 Puma。

3 个赞

Unicorn。已修复,谢谢。

1 个赞

如今的叉子!!

2 个赞

不错的方案,谢谢!

关于备份,我建议检查最新的备份文件,查看其自写入后是否被读取过。这可以作为判断备份是否已复制到站外的一个代理指标。(或者,如果不只检查最新的,也可以检查所有备份。)

如果一周内没有任何备份被复制到站外,那就值得发出警告了。

(我认为你可以用 stat -c %X 减去 stat -c %Y,或者干脆直接比较这两个值。如果备份文件自写入后被读取过,这两个值就会不同。)

5 个赞

@Ed_S 太棒的建议了。已在 v1.0.2 版本中加入。该功能会对比最新备份的 atime 与 mtime,若自写入后未被读取则发出警告,并包含 noatime 检查以在 atime 不可靠时优雅跳过。已为您署名,谢谢!

4 个赞