【问题标题】:setting up a cron job every 15 minutes between 8am to 8pm在早上 8 点到晚上 8 点之间每 15 分钟设置一次 cron 作业
【发布时间】: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

标签: shell cron


【解决方案1】:

通过设置sh文件和jar文件的权限解决

chmod 0777 shellscript.sh
chmod 0664 jarfile.jar

【讨论】:

  • 将权限设置为777 意味着系统上的任何人都可以写入该脚本。如果您是唯一的用户,这可能并不重要,但过度放任自流仍然是一个坏习惯。 755 更好,或者 775 如果您需要组写访问权限(您可能不需要)。 (顺便说一句,chmod 命令采用八进制;不需要前导 0。)
猜你喜欢
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多