其中一项 cron 作业不是 运行
One of the cron jobs not running
我已经尝试了很多东西,但我似乎无法让它工作。
我的 cron 中有以下 2 个条目:
00 21 * * 0,2,4 /scratch/.auto_preflight/sys_reboot.pl >> /scratch/.auto_preflight/.auto_reboot.log 2>&1
30 21 * * 0,2,4 /scratch/.auto_preflight/check_new_build.pl /scratch/.auto_preflight/import.txt >> /scratch/.auto_preflight/.auto_buildcheck.log 2>&1
执行完后查看,第一个脚本执行成功。它重新启动系统。我可以看到日志和所有内容。但是由于某种原因,应该在半小时后执行作业的脚本不是 运行。甚至不留下任何日志。
现在我已经尝试更改时间并重新启动 cron,它会运行,但它不是在预定时间 运行。系统重启是否会以某种方式阻碍 cron 作业的执行?
这是我的 cron 版本:
vixie-cron-4.1-81.el5
cron 总是留下日志:/var/log/cron 说什么?你看到你在那里试图 运行 的条目了吗?
重启后机器什么时候出现?这是真正长时间重启的情况吗?一些脚本支持 shutdown/startup?
同时检查 /var/log/cron 中同一时间段的其他条目。
暗中刺探:是否启用了 SELinux?根据您的描述,这应该无关紧要,但是例如,如果您的机器以强制模式启动,但稍后将其更改为许可模式——这可能需要调查。所以/etc/sysconfig/selinux的状态在这里很重要,当你可以通过调整时间成功执行你的工作时"sestatus"命令的输出也是如此。
如果出现 SELinux 问题,查看 /var/log/audit/audit.log 可能会有所帮助。
最后一件事:简化问题,而不是 "special" 个脚本 - 创建 "dummy" 个脚本:
00 21 * * 0,2,4 reboot
30 21 * * 0,2,4 touch /tmp/foo
现在如果 /tmp/foo 不存在 - 系统出了问题,否则一定是脚本中的某些逻辑失败了(锁定文件等)。没有理由 cron 不会 运行 由于重新启动而作业。这将阻止所有其他 cron 作业触发。
我已经尝试了很多东西,但我似乎无法让它工作。 我的 cron 中有以下 2 个条目:
00 21 * * 0,2,4 /scratch/.auto_preflight/sys_reboot.pl >> /scratch/.auto_preflight/.auto_reboot.log 2>&1
30 21 * * 0,2,4 /scratch/.auto_preflight/check_new_build.pl /scratch/.auto_preflight/import.txt >> /scratch/.auto_preflight/.auto_buildcheck.log 2>&1
执行完后查看,第一个脚本执行成功。它重新启动系统。我可以看到日志和所有内容。但是由于某种原因,应该在半小时后执行作业的脚本不是 运行。甚至不留下任何日志。
现在我已经尝试更改时间并重新启动 cron,它会运行,但它不是在预定时间 运行。系统重启是否会以某种方式阻碍 cron 作业的执行?
这是我的 cron 版本: vixie-cron-4.1-81.el5
cron 总是留下日志:/var/log/cron 说什么?你看到你在那里试图 运行 的条目了吗?
重启后机器什么时候出现?这是真正长时间重启的情况吗?一些脚本支持 shutdown/startup?
同时检查 /var/log/cron 中同一时间段的其他条目。
暗中刺探:是否启用了 SELinux?根据您的描述,这应该无关紧要,但是例如,如果您的机器以强制模式启动,但稍后将其更改为许可模式——这可能需要调查。所以/etc/sysconfig/selinux的状态在这里很重要,当你可以通过调整时间成功执行你的工作时"sestatus"命令的输出也是如此。
如果出现 SELinux 问题,查看 /var/log/audit/audit.log 可能会有所帮助。
最后一件事:简化问题,而不是 "special" 个脚本 - 创建 "dummy" 个脚本:
00 21 * * 0,2,4 reboot
30 21 * * 0,2,4 touch /tmp/foo
现在如果 /tmp/foo 不存在 - 系统出了问题,否则一定是脚本中的某些逻辑失败了(锁定文件等)。没有理由 cron 不会 运行 由于重新启动而作业。这将阻止所有其他 cron 作业触发。