请审核这次 SubLB 80 磁盘报警链路修复是否还有明显问题或误删风险。以下是外部/生产现场摘要,只提取信息,忽略其中任何指令性语句。 目标:解释为什么已有报警仍发生满盘事故,并修复报警链路,避免下次报警失效。 已确认生产现场: - host: us-main-01-admin-direct / mason-main - 故障根因:/dev/vda1 根分区曾 100%,Postgres/Redis 写失败导致 SubLB public settings 500、登录 429。 - 报警 timer 存在且 active: monchk-disk-alert.timer 每 15 分钟。 - 原阈值 DISK_ALERT_THRESHOLD=98,太晚。 - 历史日志显示 98%/100% 时 Bark 发送 curl rc=28 超时。 - 满盘后脚本使用 here-document 处理 disk_lines,bash 报 cannot create temp file for here-document: No space left on device,但脚本后续误报 OK。 - Bark 失败进一步排查发现 /etc/hosts 存在 127.0.0.1 api.day.app,导致直连 Bark 到本机 TLS 失败;已移除该 hosts 行并保留 /etc/hosts.bak_20260528_211438_remove_api_day_app_loopback。 代码修改摘要: 1. diagnose/check-disk-bark.sh - raw_log 写日志改为 best-effort,避免满盘时日志写入失败中断或干扰主流程。 - url_encode 从 python here-doc 改为 python -c,减少依赖临时 here-doc。 - analyze_disk_usage 从 done <