Cron. Как работать с планировщиком?


Сron – незаменимая программа-демон, задачей которой является выполнение заданий в указанное время или через промежутки времени.

Для работы следует использовать утилиту crontab.

Cron — набор настроек и команд, которые хранятся в файле особой структуры.
Он состоит из двух условных частей — сперва идут параметры, а после них — команды.
Набор параметром может выглядеть так:

SHELL=/bin/bash
MAILTO=username

Выше указан пример с обязательными параметрами:
— SHELL — среда для выполнения комманд
— MAILTO — имя пользователя ИЛИ email, куда будут отсылаться сообщения о выполнении заданий.

Также можно указать необязательные параметры:
— HOME — домашний каталог пользователя
— PATH — пути к каталогам исполнительных файлов
— DISPLAY — дисплей (следует указывать, если будет использоваться графика).

Количество команд не ограничено и имеет строгий формат:

минута час день_месяца месяц день_недели команда

Т.е. сначала указываются параметры времени или диапазона времени для запуска, а после этого — собственно, сама команда.

Значение Допустимые значения Примечание
минуты 0-59
часы 0-23
дни месяца 1-31
месяцы 1-12 Также можно задавать в коротком варианте: jan feb mar apr may jun jul aug sep oct nov dec
дни недели 0-6 0 — воскресенье. Также можно задавать в коротком варианте: sun mon tue wed thu fri sat

Варианты вызова crontab

Команда Действие
crontab имя_файла_расписания Добавляет файл расписания
crontab -l Выводит актуальный список задач
crontab -r Безвозвратно удаляет актуальный файл заданий
crontab -e Открывает актуальный файл заданий для редактирования
crontab -u username Дает возможность выполнить все указанные команды для какого-то конкретного пользователя (при условии вызова от суперпользователя)

Примеры команд

Пример Пояснение
* * * * * Каждую минуту
40 7 * * * ~/any-sh-script.sh Ежедневно в 7:40
0 0 * * 5 Полночь каждой пятницы
* */2 * * * Каждые два часа
30 7 * * 1-5 Половина восьмого каждый будний день (с понедельника по пятницу)

Более детально пример вызова консольного приложения yii2 я описываю тут


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *