«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/.