我尝试将cron
作业设置为距当前时间几分钟(假设为 10 分钟)的时间来测试它。例如,如果现在是下午 5:00,我设置:
10 17 * * * dotnet <full path to .net core dll>
当时钟敲响下午 5:10 时,该作业不会执行。
另一方面,如果我将cron
作业设置为每分钟执行一次:
* * * * * dotnet <full path to .net core dll>
每分钟都会成功执行一次。
我查找了 bash 命令无法执行的原因。不幸的是,没有任何建议能够解释为什么一个有效,而另一个无效。
操作系统:Ubuntu AWS 实例 注意:该date
命令为我提供了正确的时间,供我参考。
答案1
您检查过时区吗?Cron 使用本地系统时间运行,因此,例如,如果您的系统在 UTC 时间运行,但您有一个调整用户时间的 TZ 环境变量,则您的 crontab 仍将以 UTC 时间执行。
建议测试:
将其设置为在执行
10 * * * *
所以它将在几分钟内执行无论何时。如果有效,那么最可能的问题是时区偏移导致您指定的小时不是您想要指定的小时 :)