Расписание 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