Стандартный планировщик, выполняет указанные задания из файла /etc/crontab и из директорий /etc/cron.daily|monthly...
Файл crontab в основном системный, не стоит его использовать.
В каталоге /etc/cron.d могут располагаться файлы с заданиями (аналогично crontab).
В каталогах /etc/cron.daily|monthly.. могут располагаться сценарии, для исполнения в соответствующей периодичности.
Заданные правила через «crontab -e» хранятся в «/var/spool/cron/crontabs/« с указанием пользователя
Структура файла: - Минуты Часы День Месяц День_недели Владелец_процесса Команда
Примерное содержание файла в cron.d. Выполнение команд в 5:21 каждый понедельник.
# 21 5 * * 1 root apt update && apt upgrade > log.log
Утилита для пользователя, выполняет задания от пользователя.
Структура записи задачи:
минуты / часы / дни месяца / месяцы / дни недели / <строка, которая будет выполнена интерпретатором>
В полях времени, значения можно указывать через запятую либо через дефис, что означает перечисление либо диапазон
Можно указывать дни недели или месяцы поименно
Символ деления это указание шага, т.е. выражение «*/2» это запуск каждые две минуты
Шаги и интервалы можно смешивать, например «0-10/2» - запуск каждые две минуты в первые 10 минут каждого часа
Поддерживаются альтернативные указатели, типа »@reboot, @daily, @hourly»
В системной таблице задач (/etc/crontab), в 6ом столбце, указано имя пользователя, от которого нужно выполнить команду
Пользовательские crontab-файлы хранятся в «/var/cron/tabs/» (или «/var/spool/cron/crontabs/» в debian ветке)
В файле задач можно переопределить переменные окружения, например «HOME» или «SHELL». Все определяемые в файле переменные, будут переданы запускаемому процессу
В Debian системах, cron по умолчанию выполняет команды в dash (эти минимальная оболочка, полностью POSIX совместимая), в отличии от RH систем, в которых используется bash. В обоих случаях запускается в неинтерактивном режиме, не читая никакой доп информации
Cron запускается через систему инициализации systemd,
«Относительные задания» т.е. относительно запуска ОС.
Здесь указывается только 2 столбца - День и Время после запуска.
anacron имеет приоритет над cron.
Пример (/etc/anacrontab) Семидневный интервал, через 10 минут после запуска.
# 7 10 name action
# grep anacron /var/log/syslog
Выполнив задачу, anacron записывает дату в файле /var/spool/anacron.
Позволяет запускать сценарии как службы, со всеми вытекающими
Разовое выполнение команды (выполнение когда загрузка системы небольшая)