Cron читает файлы конфигурации, содержащие списки команд и расписание их вызова. Команды обычно обрабатываются интерпретатором sh (системной консолью Linux), поэтому почти все команды, которые можно выполнять в консоли вручную, можно перепоручить демону cron.
Файлами конфигурации демона управляет команда crontab, поэтому их называют crontab-файлами. В системе существует множество crontab-фалов, однако мы будем вносить изменения в/etc/crontab. Обратите внимание, что в дистрибутивах CentOS и Fedora демон cron переименован в crond.
Каждая строка crontab-файла, не являющаяся комментарием содержит шесть или семь полей и представляет одну команду. Стандартная строка имеет вид:
минута час день месяц день_недели [имя_пользователя] команда
Поле имя_пользователя определяет пользователя, от имени которого будет выполняться команда. В полях минута час день месяц день_недели содержится информация о времени запуска команды. Описание данных полей приведено в таблице ниже:
Поле | Описание | Диапазон |
---|---|---|
минута | Минута часа | От 0 до 59 |
час | Час дня | От 0 до 23 |
день | День месяца | От 1 до 31 |
месяц | Месяц года | От 1 до 12 |
день_недели | День недели | От 0 до 6 (0 - воскресенье) |
Каждое из полей может содержать:
Например, последовательность 0,3,6,9,12,15,18 можно записать как 0-18/3. Строка 45 10 * * 1-5 означает "В 10 часов 45 минут, с понедельника по пятницу".
(!) Никогда не ставьте звездочку в первое поле, иначе команда будет выполняться каждую минуту, что приведет к чрезмерной нагрузке на ВПС.
С полями день_недели и день связана двусмысленность, которую необходимо учитывать. День можно рассматривать как день недели, так и как число месяца. Если указаны оба поля, то дню необходимо соответствовать одному из этих условий, что бы пройти отбор и запустить выполнение задачи. К примеру, спецификация 0,30 * 13 * 5 означает "каждые полчаса по пятницам и каждые полчаса тринадцатого числа месяца", но не "каждые полчаса в пятницу 13-го".