Расписание crontab и задания cron
Я положил два файла в /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.
4 ответа
Поместить файлы в cron.d достаточно. Тем не менее, ваша последняя запись должна быть:
*/10 * * * * php /var/www/site1/helper post:update
В противном случае он запускается один раз в час, на 10-й минуте.
Кроме того, добавить
> /dev/null 2>&1
в конце (после команды), так что cron не будет рассылать вам спам:)
Кронтабы в /etc/cron.d/
требуется имя пользователя в 6-м поле, как и /etc/crontab
, Пользовательские crontabs в /var/spool/crontabs/
и через crontab -e
не имеют поля имени пользователя.
Ответ Халфгаара о времени проведения каждые 10 минут также верен.
В настоящее время эти задания cron выполняются /var/www/site1/helper
как php
пользователь, а не выполнение /usr/bin/php
и передавая ему аргументы /var/www/site1/helper post:make
, Это будет работать, если у вас есть php
пользователь, файл является исполняемым и имеет соответствующий шебанг. (т.е. #!/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
Это:
10 * * * * php /var/www/site1/helper post:update
Не будет запускаться каждые 10 минут, он будет запускаться с 10-й минуты каждого часа (00:10, 01:10, ...).
Это будет выполняться каждые 10 минут:
*/10 * * * * php /var/www/site1/helper post:update