【发布时间】:2015-11-05 18:07:22
【问题描述】:
我需要设置一个在上午 8 点到晚上 8 点之间每 15 分钟运行一次的 cron 作业。 谷歌搜索后,我决定这样使用它:
*/15 8-20 * * * /path/of/shellscript.sh
但是,cron 没有被触发。 正确的表达方式应该是什么?
编辑:
*/15 8-19 * * * /path/of/shellscript.sh
00 20 * * * /path/of/shellscript.sh
cron 执行。但是日志显示此错误:
Mailed 62 bytes of output but got status 0*0047
但是,如果我手动运行脚本,它执行得很好!
【问题讨论】:
-
这应该从 08:00 到 20:45 每 15 分钟运行一次,这不是你说的你想要的完全。你怎么知道它没有执行?
shellscript.sh是否依赖于环境变量?如果将/path/of/shellscript.sh替换为date >> $HOME/cronlog会怎样? -
shell 脚本运行一个 jar 文件来下载一个 excel 表并将其存储在一个位置。我找不到在该位置下载的 excel。如果我手动执行脚本,我可以找到在适当位置下载的 excel。不,它不依赖于环境变量
-
请记住,您手动运行脚本时拥有的环境变量与 cron 将拥有的环境变量不同。您可以像这样在 cron 中设置变量:stackoverflow.com/questions/3639415/variables-in-crontab。此外,您的 cron 条目应类似于
0,15,30,45 8-20 * * * /path/of/shellscript.sh -
对于最常见的 cron 实现(Vixie cron),
*/15等价于0,15,30,45。