我设置了 crontab 来运行日常工作。
有时它会失败并且永远在同一个目录中循环/工作。
第二天,crontab 将在同一目录中运行相同的脚本。
预计每天晚上完成工作,但现在一天没完成,就会和第二天的工作混为一谈。
我计划在每日 cron 作业(下午 5 点)之前(每天)重新启动(例如:下午 4 点),是否会在重新启动后执行 cron 作业而无需用户登录?
#Note 很明显,问题出在脚本(以及脚本正在做什么)而不是关于 crontab。
我设置了 crontab 来运行日常工作。
有时它会失败并且永远在同一个目录中循环/工作。
第二天,crontab 将在同一目录中运行相同的脚本。
预计每天晚上完成工作,但现在一天没完成,就会和第二天的工作混为一谈。
我计划在每日 cron 作业(下午 5 点)之前(每天)重新启动(例如:下午 4 点),是否会在重新启动后执行 cron 作业而无需用户登录?
#Note 很明显,问题出在脚本(以及脚本正在做什么)而不是关于 crontab。
是的,只要
cron
守护程序当时正在运行,无论用户登录如何,都会按计划执行 cron 作业。您已描述您的 cron 作业未按预期完成/完成工作。这不太可能是问题
cron
(因为脚本被正确触发),但可能是您的 shell 脚本中的逻辑错误。您可以通过捕获脚本的输出来解决问题。一种方法是让脚本将详细信息输出到 stdout/stderr,然后配置
cron
的电子邮件设置。cron
将捕获输出并将其发送给您。另一种方法是在脚本中自己进行日志记录 - 创建一个日志文件并将所有命令的 stdout/stderr 重定向到该文件。如果故障仅在特定条件下发生,您可以将检查合并到您的脚本中。您可以检查关键命令的退出状态并在适当时报告失败。
最后,关于重新启动的说明。如果系统没有在预定的时间运行,
cron
即使在系统恢复在线后也不会执行作业。如果这是您遇到的情况,请查看anacron
.