С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 я описываю тут