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