我把两个文件放在/etc/cron.d/目录下:
第一个每天上午12:00发布新post:
0 0 * * * php /var/www/site1/helper post:make
第二个每10分钟更新最新的post
10 * * * * php /var/www/site1/helper post:update
我是否必须根据时间(例如,每10分钟)为此作业做其他事情,还是必须执行crontab job1和crontab job2 ?
编辑 :我也安装了cronie。
把文件放在cron.d就足够了。 但是,您的最后一项应该是:
*/10 * * * * php /var/www/site1/helper post:update
否则在第10分钟一小时运行一次。
另外,添加
> /dev/null 2>&1
在结束(命令之后)所以cron不会发送垃圾邮件给你:)
/etc/cron.d/的crontabs需要在第6个字段中input用户名,就像/etc/crontab 。 /var/spool/crontabs/的基于用户的crontabs和通过crontab -e没有用户名字段。
Halfgaar关于每10分钟运行时间的答案也是正确的。
目前,这些cron作业执行/var/www/site1/helper作为php用户,而不是执行/usr/bin/php并将参数/var/www/site1/helper post:make传递给/var/www/site1/helper post:make 。 这将工作,如果你有一个php用户,该文件是可执行的,并有一个适当的shebang。 (即#!/usr/bin/php作为第一行),否则会在/var/log/cron/log 。
下面的例子将它们作为httpd用户运行,并且具有到PHP可执行文件的显式path。 你应该select一个合适的用户。
0 0 * * * httpd /usr/bin/php /var/www/site1/helper post:make */10 * * * * httpd /usr/bin/php /var/www/site1/helper post:update
这个:
10 * * * * php /var/www/site1/helper post:update
不会每10分钟运行一次,它会在每小时10分钟(00:10,01:10,…)运行。
这将每10分钟运行一次:
*/10 * * * * php /var/www/site1/helper post:update