【问题标题】:Crontab executes only first linecrontab 只执行第一行
【发布时间】:2012-09-10 21:24:30
【问题描述】:

我正在尝试在 centos/whm 下的 VPS 上设置几个 cron 作业。 我在 /var/spool/cron/root 中添加了以下几行:

*/5 * * * * find /some-dir/* \( ! -iname ".ht*" \) -delete
*/10 * * * * find /some-other-dir/* \( ! -iname ".ht*" \) -delete

但只执行了第一行(for /some-dir/)。如果我交换行 - /some-other-dir/ 执行,/some-dir/ - 不是。我尝试在每行的末尾添加分号,以放置空格、制表符、更改文件编码 - 什么都没有。

如何让 cron 处理这两个任务?

这里是 /var/log/cron 输出:

Sep 18 11:05:01 host crond[3302]: (root) CMD (find /some-dir/* \( ! -iname ".ht*" \) -delete)
Sep 18 11:10:01 host crond[3303]: (root) RELOAD (/var/spool/cron/root)

谢谢!

【问题讨论】:

  • 试图将完整的命令放在圆括号中,即* * * * * (complete command)并检查
  • 相同的结果 - 只有第一行有效
  • crontab 条目是否正确更新?查看您的 /var/log/cron 输出,似乎在第 10 分钟没有命令运行。
  • 是的,完全正确 - 尝试运行第二行时它正在重新加载。无论线路顺序如何。我不知道为什么 - 如果是语法错误,为什么不管行内容如何,​​第一行都可以?
  • Cron 预计命令不到一分钟即可完成。您可以尝试通过在命令末尾添加 & 来分叉它。

标签: shell cron centos crontab


【解决方案1】:

似乎 cron 需要一个空行和 crontab 的结尾。我不小心留下了这样的台词和中提琴!两个任务都执行了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    相关资源
    最近更新 更多