Я поместил два файла в /etc/cron.d/
каталог:
Первый из них публикует новую почту каждый день в 12:00:
0 0 * * * php /var/www/site1/helper post:make
Второй обновляет последний пост каждые 10 минут
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/
требуется имя пользователя в 6-м поле, как и /etc/crontab
. Пользовательские crontab в /var/spool/crontabs/
и через crontab -e
нет поля имени пользователя.
Ответ Халфгаара о тайминге того, который запускается каждые 10 минут, также верен.
В настоящее время эти задания cron выполняют /var/www/site1/helper
как php
пользователь, а не выполнение /usr/bin/php
и передавая ему аргументы /var/www/site1/helper post:make
. это воля работать, если у вас есть php
user, файл является исполняемым и имеет соответствующий шебанг. (т.е. #!/usr/bin/php
в качестве первой строки.) В противном случае будет записана ошибка в /var/log/cron/log
.
В приведенном ниже примере они запускаются как httpd
user и имеет явный путь к исполняемому файлу PHP. Вам следует выбрать подходящего пользователя.
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