【问题标题】:Crontab job is not running for concrete values; but executes for relative time valuesCrontab 作业未针对具体值运行;但针对相对时间值执行
【发布时间】:2013-06-17 01:47:31
【问题描述】:

我正在运行全新安装的 Ubuntu 12.0.4,并且正在尝试设置非系统 cron 作业。 我使用了“sudo crontab -e”命令,这是文件的外观:

0 5 * * * root /home/jacob/rolllogsweb.sh 

我希望该用户目录中的脚本每天早上 5 点运行。它根本不运行。

但是,如果我将 crontab -e 条目修改为这样的内容,它确实会运行:

*/5 * * * * root /home/jacob/rolllogsweb.sh 

这基本上告诉它“每 5 分钟”运行一次,这样就可以了。

为什么第一个不起作用?我想不通 - 根据文档,语法看起来是正确的。

谢谢,

【问题讨论】:

  • root 命令应该做什么?

标签: linux unix ubuntu cron crontab


【解决方案1】:

尝试从您的 crontab 文件中删除“root”:

0 5 * * * /home/jacob/rolllogsweb.sh

在调度程序数据之后你应该放置你的命令,而不是命令应该运行的用户(我假设这是你想要实现的)

【讨论】:

  • 系统上没有名为“/var/log/cron”的文件。另一个有趣的注意事项是,当我退出 crontab -e 时,它​​会将文件保存在以下位置: 要写入的文件名:/tmp/crontab.wxM64S/crontab
  • 这是 cron 在编辑作业列表时使用的 tmp 文件。运行 crontab -l 会看到什么?
  • 当我运行“sudo crontab -l”时,我看到了“crontab -e”文件的输出,除了文件中的所有默认 cmets 之外,它还包括上述作业。
  • 是否启用了 cron 日志记录?如果有 cron 条目,您可以检查 /etc/syslog.conf 或 /etc/rsyslog.conf 吗? crond 正在运行吗?
  • 运行“ps -ef |grep cron”显示如下:root 30399 1 0 Jun14 ? 00:00:00 时间。所以是的,看起来它正在运行。就像我说的那样,当它设置为每 5 分钟运行一次时,该作业运行良好,但具有绝对时间(每天凌晨 5 点运行)的作业却没有,即使它是完全相同的引用脚本。我的系统上没有“/etc/syslog.conf”。当我为“cron”grep“/etc/rsyslog.conf”时,它什么也没显示。
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 2019-06-04
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多