/etc/crontab 或任何用户 crontab 未执行

/etc/crontab 或任何用户 crontab 未执行

我的服务器是 CentOS 5。当我编辑 /etc/crontab 或通过“crontab -e”命令编辑任何用户(包括 root)的 crontab 时,它只会添加“(系统) RELOAD (/etc/crontab)”或“(admin) RELOAD (cron/admin)”。/var/log/cron 中没有 CMD。

/var/log/cron 中的示例条目:

Aug 10 10:21:33 localhost crontab[31688]: (root) BEGIN EDIT (root)
Aug 10 10:21:42 localhost crontab[31688]: (root) REPLACE (root)
Aug 10 10:21:42 localhost crontab[31688]: (root) END EDIT (root)
Aug 10 10:22:01 localhost crond[2688]: (root) RELOAD (cron/root)

“service crond status”的结果:

crond (pid 1345) is running...

命令“cat /var/log/messages | grep cron”没有给出任何结果。

/etc/cron.allow 的内容:

admin
root

/etc/crontab 的内容:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
* * * * * root run-parts /bin/date >> /data/date.txt

ps aux |grep cron 的结果:

root      1345  0.0  0.1   5268  1204 ?        Ss   11:43   0:00 crond

管理员的crontab内容:

* * * * * /bin/date >> /data/date.txt

请注意,不仅管理员的 crontab 没有运行。所有 cron 作业均未运行。

知道他们为什么不跑吗?

答案1

检查您是否有 /etc/cron.allow 文件或 /etc/cron.deny 文件导致作业被忽略。

如果 /etc/cron.allow 不存在,那么每个人都可以运行 cron 作业。如果存在但为空,我不确定是否允许任何人运行 cron 作业。

答案2

你的 crontab 中有错误,请查看:

 * * * * * root run-parts /bin/date >> /data/date.txt

你使用目录 /bin/date 调用 run-parts - 这肯定会失败。错误会进入 stderr,不会被缓存>>

答案3

/etc/cron.allow如果不存在则创建该文件并将用户名添加到其中。

答案4

尽管该问题的答案已被接受,但我还是想添加对我有用的内容。引用 URL 是一个好主意,如果它包含查询,则如果不引用所有内容,它可能无法工作。

不要忘记将包含“?,=,#,%”的 URL 放在引号中。

例子。 https://paystack.com/indexphp?docs/api/#transaction-charge-authorization&date=today 应该像这样引用“https://paystack.com/indexphp?docs/api/#transaction-charge-authorization&date=today”

相关内容