Помощь

Все разделы помощи → Вопросы по виртуальному хостингу

Как запускать PHP-скрипты по расписанию

Вы можете выполнять запуск скриптов на языке PHP в указанное время с желаемой периодичностью. Для этого требуется использовать PHP интерпретатор:

/usr/bin/php /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.php

Поскольку не все PHP-программы могут работать без предварительной модификации, можно запускать их через wget. Например:

/usr/bin/wget -O /dev/null -q http://mydomain.mchost.ru/cron.php?action=123

Если в скрипте используются функции require, include, причём в них указаны относительные пути, то в начале выполняемого скрипта используйте вызов функции chdir(), которая задаст текущую рабочую директорию.

Как получать сообщения об ошибках от программ, запускаемых cron

Если при выполнении программы, которая запускается из cron, возникли ошибки, наверняка вы захотите получать сообщения об этих ошибках, чтобы полностью контролировать работу периодически запускаемых заданий. Для этого в начале cron-сценария поместите такую строку: MAILTO=адрес@домен.ru

Конечно, адрес@домен.ru нужно заменить на реально существующий адрес электронной почты куда надо будет доставлять уведомления. Если нужно получать сообщения об ошибках на несколько адресов, укажите все эти адреса через запятую.

Обратите внимание на то, что cron будет присылать по почте то, что выводят запускаемые скрипты. Например, если вы напишете скрипт, который будет печатать строчку «Hello, world» и поставите его на выполнение через cron, вы будете получать по почте письмо со строкой «Hello, world» каждый раз, когда cron будет запускать такой скрипт.

Чтобы избежать этого, например когда текст, выводимый скриптом, вам не нужен, надо добавить в конец строки-сценария для cron символы > /dev/null 2>&1

Примеры использования cron

Ниже приводятся примеры заданий для cron. Надеемся, эта информация поможет вам лучше понять работу этой программы.

# выполнять задание раз в час в 0 минут

0 */1 * * * /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.pl

# выполнять задание каждые три часа в 0 минут

0 */3 * * * /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.pl

# выполнять задание по понедельникам в 1 час 15 минут ночи

15 1 * * 1 /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.pl

# выполнять задание 5 апреля в 0 часов 1 минуту каждый год

1 0 5 4 * /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.pl

# выполнять задание в пятницу 13 числа в 13 часов 13 минут

 13 13 13 * 5 /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.pl

# выполнять задание ежемесячно 1 числа в 6 часов 10 минут

10 6 1 * * /home/httpd/vhosts/domain.tld/httpdocs/scripts/script.pl