| 场景 | 任务到点没动静 |
|---|---|
| 方法 | 分层验证:先触发、后执行、再结果 |
| 输出 | 每步可复制命令 |
第 1-4 步:触发链
第 1-4 步:触发链
systemctl is-active cron 2>/dev/null || systemctl is-active crond # 1 服务在跑?
sudo grep CRON /var/log/syslog | tail -n 5 # 2 日志见触发?
sudo journalctl -u cron --since '30 min ago' | tail -n 5 # 3 journal 兜底
crontab -l | cat -A | sed -n '1,20p' # 4 有无 ^M 与语法错(cat -A 看隐藏字符)第 5-8 步:执行链
第 5-8 步:执行链
sudo ls -l /var/spool/cron/crontabs/root # 5 任务表存在且权限对?
env -i PATH=/usr/bin:/bin /bin/sh -c '/opt/app/job.sh; echo rc=$?' # 6 空环境手动跑
ls -l /opt/app/job.sh # 7 执行位与 shebang
bash -x /opt/app/job.sh 2>&1 | tail -n 30 # 8 带追踪复跑常见根因排序:PATH/环境(40%)、权限与执行位(20%)、语法与隐藏字符(15%)、依赖未就绪(15%)、其它。