这是我为自己论坛编写的一个小型 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:
新版本 v1.0.4:
两项修复:
-
Discourse 已用 Pitchfork 替换 Unicorn(2026.2 版本默认使用,2026.4 版本完全移除 Unicorn),因此 Web 服务器检查现在能同时检测两者。感谢 @RGJ 在六月份指出此问题。
-
服务探针匹配的是其自身的命令行。
pgrep -f <name>导致 pgrep 匹配到了自身,无论服务是否实际运行,检查都会通过。自 1.0.0 版本以来,Sidekiq 一直无条件报告“运行中”。即使服务已停止,你仍会看到绿色对勾,且 cron 返回退出码 0。这与 1.0.1 中 Puma 误报的根本原因相同,该问题当时只是被重命名而非真正修复。
