Инструменты пользователя

Инструменты сайта


linux:overall:cron

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
linux:overall:cron [2021/04/20 10:31]
admin создано
linux:overall:cron [2024/06/29 10:58] (текущий)
admin
Строка 1: Строка 1:
 ====== Планировщик заданий ====== ====== Планировщик заданий ======
 +
  
 ===== cron ===== ===== cron =====
 Стандартный планировщик, выполняет указанные задания из файла **/etc/crontab** и из директорий **/etc/cron.daily|monthly..**.\\ Стандартный планировщик, выполняет указанные задания из файла **/etc/crontab** и из директорий **/etc/cron.daily|monthly..**.\\
 Файл **crontab** в основном системный, не стоит его использовать.\\ Файл **crontab** в основном системный, не стоит его использовать.\\
-В каталоге **/etc/cron.d** могут располагаться файлы с заданиями (аналогично **crontab**).+В каталоге **/etc/cron.d** могут располагаться файлы с заданиями (аналогично **crontab**).\\
 В каталогах **/etc/cron.daily|monthly..** могут располагаться сценарии, для исполнения в соответствующей периодичности.\\ В каталогах **/etc/cron.daily|monthly..** могут располагаться сценарии, для исполнения в соответствующей периодичности.\\
 +Заданные правила через "crontab -e" хранятся в **"/var/spool/cron/crontabs/"** с указанием пользователя\\
 +
 Структура файла: - **Минуты Часы День Месяц День_недели Владелец_процесса Команда** Структура файла: - **Минуты Часы День Месяц День_недели Владелец_процесса Команда**
  
 **Примерное содержание файла в cron.d.** Выполнение команд в 5:21 каждый понедельник. **Примерное содержание файла в cron.d.** Выполнение команд в 5:21 каждый понедельник.
-<code bash># 21 5 * * 1 root apt update && apt upgrade</code>+<code bash># 21 5 * * 1 root apt update && apt upgrade > log.log</code> 
  
 ==== Утилита crontab ==== ==== Утилита crontab ====
Строка 15: Строка 19:
   * **-l** - список заданий.   * **-l** - список заданий.
   * **-e** - добавить задание.   * **-e** - добавить задание.
 +
 +<details>
 +<summary>:!: Подробнее</summary>
 +Структура записи задачи:\\
 +минуты / часы / дни месяца / месяцы / дни недели / <строка, которая будет выполнена интерпретатором>\\
 +
 +В полях времени, значения можно указывать через запятую либо через дефис, что означает перечисление либо диапазон\\
 +Можно указывать дни недели или месяцы поименно\\
 +
 +Символ деления это указание шага, т.е. выражение "*/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, 
 +
 +<code bash>
 +</code>
 +</details>
 +
 +
  
 ===== anacron ===== ===== anacron =====
Строка 23: Строка 55:
 **Пример (/etc/anacrontab)** Семидневный интервал, через 10 минут после запуска. **Пример (/etc/anacrontab)** Семидневный интервал, через 10 минут после запуска.
 <code bash># 7 10 name action</code> <code bash># 7 10 name action</code>
 +
  
 === Лог работы === === Лог работы ===
 **# grep anacron /var/log/syslog**\\ **# grep anacron /var/log/syslog**\\
 Выполнив задачу, anacron записывает дату в файле **/var/spool/anacron**. Выполнив задачу, anacron записывает дату в файле **/var/spool/anacron**.
 +
  
 ===== systemctl таймеры ===== ===== systemctl таймеры =====
-Позволяет запускать сценарии как службы, со всеми вытекающими.+Позволяет запускать сценарии как службы, со всеми вытекающими\\ 
 + 
 + 
 +==== at (batch) ==== 
 +Разовое выполнение команды (выполнение когда загрузка системы небольшая)\\ 
 + 
linux/overall/cron.1618914696.txt.gz · Последнее изменение: 2021/04/20 10:31 — admin