Задача – каждые 3 мин. запускать php скрипт.
Для выполнения поставленной задачи, будем использовать встроенный планировщик – cron.
Первым делом создаем простенький скрипт, в котором укажем путь к php скрипту, который надо будет запускать. В моем случае, это cron.php. Скрипт сохраним под именем cron.sh, в этой же директории.
#! /bin/sh
php /var/www/mysite/cron.php
Разрешим скрипту выполняться:
#chmod u+x cron.sh
Переходим в планировщик:
# crontab –e
Создаем задачу:
*/3 * * * * /var/www/mysite/cron.sh
Выходим с сохранением:
# :wq
Первые пять звезд – это: минуты, часы, день месяца, месяц, день недели. Звезда означает – каждый, каждый час, каждый день и т.д. Слэш(/) – означает периодичность. В моем случае */3 – означает, каждые 3 мин.
Допустимые значения временных параметров:
параметр | допустимый интервал |
минуты | 0-59 |
часы | 0-23 |
день_месяца | 1-31 |
месяц | 1-12 |
день_недели | 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс) |
Поле может быть задано явно или шаблоном :
- звездочка – любая цифра
- целое число
- целые числа через запятую — задание дискретного множества значений
- два целых числа, разделенные дефисом, соответствующие диапазону значений.
Пример готовой строки сценария cron:
7 18 13 5 5 /home/www/myscript.pl
# Выполнять задание раз в час в 0 минут
0 */1 * * * /home/www/myscript.pl
# Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/www/myscript.pl
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.pl
Для выполнения php скриптов из cron необходим бинарный интерпретатора PHP, путь к интерпретатору PHP уточните у хостинга.
0 5 * * * /usr/bin/php -q /home/www/script.php
Обратите внимание, при запуске из cron опция -q указывает PHP не выдавать http-заголовки.
Для получения списка всех заданий:
# crontab –l
Чтобы посмотреть ошибки, которые возникают в процессе выполнения задания, можно в задании указать файл, куда будет писаться лог.
*/3 * * * * /var/www/mysite/cron.sh 2 > /var/mycron.log
Основной лог cron хранится в /var/log/