====== Планировщик заданий ====== ===== cron ===== Стандартный планировщик, выполняет указанные задания из файла **/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 ==== Утилита crontab ==== Утилита для пользователя, выполняет задания от пользователя. * **-l** - список заданий. * **-e** - добавить задание.
:!: Подробнее Структура записи задачи:\\ минуты / часы / дни месяца / месяцы / дни недели / <строка, которая будет выполнена интерпретатором>\\ В полях времени, значения можно указывать через запятую либо через дефис, что означает перечисление либо диапазон\\ Можно указывать дни недели или месяцы поименно\\ Символ деления это указание шага, т.е. выражение "*/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,
===== anacron ===== "Относительные задания" т.е. относительно запуска ОС.\\ Здесь указывается только 2 столбца - **День** и **Время после запуска**.\\ **anacron** имеет приоритет над **cron**. **Пример (/etc/anacrontab)** Семидневный интервал, через 10 минут после запуска. # 7 10 name action === Лог работы === **# grep anacron /var/log/syslog**\\ Выполнив задачу, anacron записывает дату в файле **/var/spool/anacron**. ===== systemctl таймеры ===== Позволяет запускать сценарии как службы, со всеми вытекающими\\ ==== at (batch) ==== Разовое выполнение команды (выполнение когда загрузка системы небольшая)\\