首页/系统/Linux 运维命令速查/手动模拟 cron 执行任务
定时任务与计划50 条

手动模拟 cron 执行任务

复现 cron 环境三要素:空环境(env -i)、最小 PATH、非交互 shell;用 bash -x 追踪,能重现 90% 的「手动行、cron 不行」。

Linux 运维命令速查系统更新于 2026-10-12
用途以 cron 的姿势手动跑任务
要点env -i / 最小 PATH / bash -x

模拟执行

模拟执行
# 近似 cron 的环境空跑(看 PATH 缺失导致的失败)
env -i PATH=/usr/bin:/bin SHELL=/bin/sh /bin/sh -c '/opt/app/job.sh; echo rc=$?'

# 追踪每一步(先脚本本体验证逻辑)
bash -x /opt/app/job.sh 2>&1 | head -n 60

# 以目标用户身份跑
sudo -u www -H env -i PATH=/usr/bin:/bin /opt/app/job.sh
对账要点:把脚本内关键变量(PATH、pwd、whoami、date)先打印出来,与 /tmp/cron-env.txt 对比。

易错点

  • sudo -u 默认不带 -H 时 HOME 仍是原用户,模拟失真;加 -H 更接近 cron
  • 脚本用 source ~/.bashrc 会引入交互逻辑,空环境下行为与预期不同

数据来源与参考

  • man 1 env
  • man 1 bash(-x 追踪)
  • man 5 crontab(环境)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌