【发布时间】: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 预计命令不到一分钟即可完成。您可以尝试通过在命令末尾添加 & 来分叉它。