Cron — демон занимающийся запуском команд в определенные дни и время. Данные о том, что и когда запускать он берет из файлов «/etc/crontab» — обще системный файл и «/var/cron/tabs/» — каталог содержащий пользовательские файлы.
В файле crontab каждая строчка содержит из шести полей и команды разделенных пробелами.
Поле | минута | час | число | месяц | день_недели | пользователь | команда |
Значение | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 (0-воскресенье) | от этого имени будет выполнятся команда | команда которая будет выполнена |
В пользовательских фалах строки практически такие же кроме поля (пользователь) которое отсутствует.
Также значением поля может быть звездочка.
* — все значения, эквивалентен 0-59 для поля минуты
Можно задавать несколько значений через запятую или диапазон значений через тире, а также задавать шаг с помощью «/»
К примеру:
* 1-9 * * * echo «test» будет запускать команду echo «test» каждый день в 1,2,3,4,5,6,7,8,9 часов.
* 1-9/2 * * * echo «test» будет запускаться в 1,3,5,7,9 то есть с шагом 2.
* 1,3,5,7,9 * * * echo «test» тоже самое что и пред идущая строка но значения заданы через запятую без всяких шагов и диапазонов
Вместо первых пяти полей могут быть использованы специальные значения
@reboot Выполнить команду один раз, при загрузке ОС
@yearly Выполнять команду каждое 1 января
@monthly Выполнять команду в начале каждого месяца
@weekly Выполнять команду каждое воскресенье
@daily Выполнять команду в полночь
@hourly Выполнять команду раз в час
Пример файла crontab
SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin #MAILTO=root #в 0 минут, 0 часов, каждый день выполняет скрипт logrotate 0 0 * * * root /scripts/logrotate