LOG=/var/log/check-$(date +%F).log
echo "$(date +%T) start" >> "$LOG" 2>&1

巡检脚本每天凌晨跑,日志文件大小始终是 200 多字节,前一天的内容全没了,排查昨天的问题只能靠回忆。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:脚本里用 > 追加,每次执行先截断文件再写。定时任务每天跑一次,历史就在同一时刻被覆盖掉。

「重定向覆盖日志」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

处理上按这个顺序:改成 >> 追加 或者交给 logger 统一收集;需要按天分文件就在文件名里带日期;保留 7 天并加清理 别无限增长;连续两天各跑一次 确认两天的内容都在。

确认没问题再收工,第二天的日志里还能看到前一天的行,文件大小按天增长。

作者 9823189