在 /etc/cron.hourly 中有一个文件:
-rwxr-xr-x 1 root root 117 Mar 8 20:33 myjob
我的工作:
3,18,33,48 * * * * /usr/bin/python /home/me/src/myproject/src/manage.py myjobs > /home/me/log
3,18,25,27,29,31,33,35,37,48 * * * * /bin/echo "testing....." > /home/me/log
/etc/crontab:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
为什么日志文件没有出现?有什么遗漏的吗? myjob 应该在每小时 3,18, ... 分钟运行
答案1
cron.hourly 中的条目由 run-parts 机制运行(man run-parts 了解更多信息)。 run-parts 对于它认为有效的文件名是很挑剔的。
例如,为脚本添加扩展名将使其无效并导致作业无法运行。
将作业添加到 /etc/cron.hourly(或 .daily、.weekly 等)时,请始终通过发出以下命令来测试 run-parts 是否实际运行它: run-parts --test /etc/cron.hourly
答案2
/etc/cron.hourly
、/etc/cron.daily
、/etc/cron.weekly
、中的脚本/etc/cron.monthly
旨在在特定时间运行,并且不采用经典的 crontab 格式。或者简单地说,它们是脚本,而不是 crontab 格式的文件。
对于 /etc/cron.hourly,它们每小时运行一次。
您必须使用 crontab -e 在 crontab 中插入该行。要在 /etc/cron.hourly 中运行,您必须取出 5 个时间字段以便每小时只运行它们(例如取出 3,18,33,48 * * * * )。
因此,就您的情况而言,您可以将脚本移动到/etc/cron.d
myjob 的内容,或者将其添加到 crontab 文件中。从 /etc/cron.hourly 目录中取出它。
回到 /etc/crond.d,您需要将其放入文件中,如下所示:
3,18,33,48 * * * * root /usr/bin/python ....