Korchy (korchy) wrote,
Korchy
korchy

Category:

Выполнение скриптов PHP через планировщик Cron

1. Просмотр уже имеющихся заданий cron:

crontab -l

2. Добавление новых заданий в cron:

crontab -e

Системный файл с системными заданиями лучше не редактировать. Для каждого пользователя командой crontab -e создается свой файл с заданиями.

3. Формат записи заданий в cron:

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

Если ставится число - это означает что в момент наступления этого числа будет выполнена команда планировщика.

Например:
5 0 * * * команда
"команда" будет выполнена каждый день в 0 часов 5 минут.

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

Например:

*/1 * * * * команда
"команда" будет выполняться через одну минуту (каждую минуту) с момента запуска cron.

(!) Каждая команда должна располагаться на новой строчке. После последней команды должен идти перенос строки.

4. Ошибки, возникающие при выполнении команд через cron отправляются в файл почты /var/mail/root

Чтобы ошибки выводились в отдельный файл, его можно указать в строке с командой:

*/1 * * * * команда 2>/tmp/cron.tmp
Ошибки будут помещаться в файл /tmp/cron.tmp

5. Команды для выполнения скриптов PHP пишутся через интерпритатор PHP:

*/1 * * * * /usr/bin/php -q /var/www/test.php

test.php будет выполняться каждую минуту.

(!) Если в скриптах php используется команда include с относительным путем в скрипте должно быть указание на домашнюю директорию командой:

chdir('/var/www'); // "Домашней" считается директория /var/www

6. Перезапуск cron

/etc/init.d/cron restart
Tags: admin, debian
Subscribe

Comments for this post were disabled by the author