我已将两个文件放入/etc/cron.d/
目录中:
第一个每天 12:00AM 发布一条新帖子:
0 0 * * * php /var/www/site1/helper post:make
第二个每10分钟更新一次最新帖子
10 * * * * php /var/www/site1/helper post:update
我是否需要做一些其他的事情才能使这项工作根据时间运行(例如每 10 分钟)或者我必须做crontab job1
什么crontab job2
?
编辑:我也安装了 cronie。
答案1
将文件放入 cron.d 中就足够了。但是,您的最后输入应该是:
*/10 * * * * php /var/www/site1/helper post:update
否则它会每小时运行一次,在第 10 分钟。
答案2
另外,添加
> /dev/null 2>&1
在最后(命令之后),这样 cron 就不会用输出向你发送垃圾邮件:)
答案3
中的 crontab/etc/cron.d/
要求在第 6 个字段中输入用户名, 也是如此。和 via/etc/crontab
中的基于用户的 crontab没有用户名字段。/var/spool/crontabs/
crontab -e
Halfgaar 关于每 10 分钟运行一次的时间的回答也是正确的。
目前,这些 cron 作业/var/www/site1/helper
以php
用户身份执行,而不是执行/usr/bin/php
并向其传递参数/var/www/site1/helper post:make
。这将要如果您有php
用户,则文件是可执行的并且具有适当的shebang。(即#!/usr/bin/php
作为第一行。)否则,它将在中记录错误/var/log/cron/log
。
下面的示例以httpd
用户身份运行它们,并具有 PHP 可执行文件的明确路径。您应该选择合适的用户。
0 0 * * * httpd /usr/bin/php /var/www/site1/helper post:make
*/10 * * * * httpd /usr/bin/php /var/www/site1/helper post:update
答案4
这:
10 * * * * php /var/www/site1/helper post:update
不会每 10 分钟运行一次,而是每小时第 10 分钟运行一次(00:10、01:10,...)。
每 10 分钟运行一次:
*/10 * * * * php /var/www/site1/helper post:update