本地邮件里的任务痕迹
cron 与 at 任务的输出会以邮件形式投递给任务属主或 MAILTO 指定的地址,主机若配置了本地邮件服务,这些邮件会堆积在 /var/mail 或 /var/spool/mail 下的用户邮箱文件里。邮件正文常包含脚本报错、路径与命令输出,可以反推任务实际做了什么,尤其在任务脚本已经被删除的情况下更显价值。检查重点是 root 邮箱与相关时间范围,邮件头部的时间与主题可直接用于时间线。
基本信息
| 位置 | /var/mail/root、/var/spool/mail/root |
|---|---|
| 来源 | cron、at、系统告警与脚本输出 |
| 线索 | 邮件头部时间与 Subject 中的任务标识 |
| 注意 | 很多系统未部署本地邮件服务,邮件根本不存在 |
典型使用场景
- 还原已被删除的定时任务实际执行内容
- 从脚本报错信息中推断任务访问过的路径
- 为定时任务的执行时间提供独立佐证
- 发现管理员未记录的临时脚本与维护动作
- 核对任务失败频率,评估对业务的影响
查看邮箱文件
查看邮箱文件
ls -l /var/mail/ /var/spool/mail/ 2>/dev/null # 邮箱文件是否存在
ls -lt --time-style=long-iso /var/mail/ | head # 各用户邮箱的最后写入时间
tail -50 /var/mail/root 2>/dev/null # 最近几封邮件的正文
grep -n '^From \|^Subject:' /var/mail/root 2>/dev/null | tail -20 # 快速列出时间与主题
ls /var/spool/mqueue 2>/dev/null | head -10 # 未投递出去的邮件队列邮件头部读法
| 字段 | 含义 | 判读要点 |
|---|---|---|
| From(信封行) | 本地投递者,通常为 Cron Daemon | 标识由计划任务生成 |
| Date | 邮件生成时间 | 与任务计划时间对齐 |
| Subject | 常含任务所在目录与脚本名 | 直接给出脚本路径线索 |
| Message-ID | 唯一标识 | 用于引用与去重比对 |
未部署本地邮件服务的系统上邮件可能堆在队列目录中或直接丢失,查不到邮件不能推断任务没有输出,需要回到 cron 日志与进程记账中寻找线索。
邮箱文件是多个邮件拼接的文本,按 From 行切分后逐封阅读比整文件滚动更快,也便于把某一封邮件单独归档引用。
邮件正文可能包含业务数据与凭据,写入报告前先脱敏,涉及第三方的收件地址也要谨慎处理。