«Cron» (Command Run ON) — система для автоматического запуска программ и скриптов на сервере в определённое время.

Правила составления заданий планировщика

Задание для планировщика (cron) состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых тире - или звездочкой *. Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами.

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

Для каждого конкретного параметра можно задать несколько значений через запятую.

Например, если в поле часы написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа.
Можно задать интервал — 4-9 будет означать, что программу нужно запускать каждый час в период с 4 до 9 часов включительно.
Символ * означает «все возможные значения». Например, указание * в поле часы будет означать «запускать каждый час».
Символ / служит для указания дополнительной периодичности задания. Например, */3 в поле часы означает «каждые три часа».

Как выглядит простейший сценарий планировщика (cron):

0 */3 * * 2,5 /usr/local/bin/php /home/login/html/cron.php  

Скрипт размещен по пути /home/login/html/cron.php будет автоматически запускаться каждые три часа во вторник и в пятницу.

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

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

0 */1 * * * /usr/local/bin/php /home/login/html/cron.php  

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

0 */3 * * * /usr/local/bin/php /home/login/html/cron.php  

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

15 1 * * 1 /usr/local/bin/php /home/login/html/cron.php  

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

1 0 5 4 * /usr/local/bin/php /home/login/html/cron.php  

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

13 13 13 * 5 /usr/local/bin/php /home/login/html/cron.php  

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

Если требуется запускать какую-то программу один раз в день, особенно если она требует для выполнения больших ресурсов, выполняйте такое задание ночью, в период с 2 до 8 часов — нагрузка на сервер в это время минимальна.

Управлять cron нужно с помощью команды «crontab».

Выполните следующую команду чтобы открыть crontab текущего пользователя:

$ crontab -e

Открыть crontab пользователя Alice:

$ crontab -u alice -e

Просмотреть содержимое crontab текущего пользователя и пользователя Alice:

$ crontab -l
$ crontab -u alice -l

По умолчанию, пользовательские задания для планировщика cron хранятся в директории /var/spool/cron/.

Обновлено 13 марта 2019 г.