磁盘满之后备份连续失败 11 天,日志里每天一行 No space left on device,没人发现,直到要还原才看到最新包是十一天前的。日志里能对上时间点,这种反而好排。
备份脚本只把输出重定向到本地文件,没有接入监控,也没有失败告警。日志文件本身还在同一块盘上,盘满了连日志都写不进去。这一点先确认清楚,后面就不用反复试。
0 2 * * * /opt/backup.sh >> /var/log/backup.log 2>&1 || \ curl -X POST $ALERT_WEBHOOK -d 'backup failed'
这次卡住的地方就在「备份日志告警」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。
别只看报错的最后一行,往上看几行,真正的起因通常在上面。
处理上按这个顺序:给备份任务加失败告警 退出码非零就发通知;日志写到另一块盘或者直接进日志系统 别和备份同盘;每天检查最新备份时间 超过 24 小时就提示。
结果对不对很好判断,手动制造一次失败,五分钟内收到告警,监控面板能看到失败计数。
