CRON(8)

НАИМЕНОВАНИЕ
cron - демон для выполнения запланированных команд

ОБЗОР

cron [-f] [-l] [-L loglevel] [-n fqdn] [-x debugflags]

cron [-N]

ОПИСАНИЕ

cron запускается автоматически из /etc/init.d при многопользовательских уровнях запуска.

ПАРАМЕТРЫ

-f
    Оставаться в интерактивном режиме, переходить в фоновый режим (режим демона).

-l
    Включает совместимые c LSB (Linux Standard Base) имена файлов в /etc/cron.d. Этот параметр не влияет на синтаксический анализ файлов /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly или /etc/cron.monthly.

-n fqdn
    При отправке писем указывать полное доменное имя (FQDN) в теме писем. По умолчанию cron сокращает имя хоста.

-N
    Запустить задания cron сейчас и выйти. Этот параметр полезен для выполнения тестов.

-L loglevel
    Указывает cron о чём нужно сообщать в журналах заданий jobs (ошибки регистрируются независимо от этого значения) как сумма следующих значений:

    1
        регистрировать запуск всех заданий cron

    2
        регистрировать завершение всех заданий cron

    4
        регистрировать все неудачные задания (статус завершения не равен 0)

    8
        регистрировать номер процесса для всех заданий cron

    По умолчанию регистрируется запуск всех заданий (1). Ведение журнала будет отключено, если для параметра levels установлено нулевое значение (0). При значении пятнадцать (15) будут выбраны все параметры.

-x debugflags
    Заставляет cron быть более подробным и выводить отладочную информацию; флаги отладки это - сумма этих значений:

    1
        "ext": ...

    2
        "sch": ...

    4
        "proc": ...

    8
        "pars": ...

    16
        "load": ..

    32
        "misc": ...

    64
        "test": ...

    128
        "bit": ...

ПРИМЕЧАНИЯ

Демон cron выполняет поиск файлов crontab в каталоге /var/spool/cron/crontabs/; эти файлы именуются также как именуются учетные записи в файле /etc/passwd; найденное загружаются в память. Обратите внимание, что к crontabs в этом каталоге не следует обращаться напрямую - для доступа к нему и его обновлению следует использовать команду crontab.

Демон cron также считывает файл /etc/crontab, который имеет несколько иной формат (смотрите crontab(5)). В Debian содержимое /etc/crontab предопределено для запуска /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly. Эта конфигурация специфична для Debian, смотрите примечание в разделе "СПЕЦИФИКА DEBIAN" ниже.

Кроме того, в Debian cron считывает файлы из каталога /etc/cron.d. cron обрабатывает файлы в /etc/cron.d так же, как и файл /etc/crontab (они соответствуют специальному формату этого файла, т.е. включают поле user). Однако они не зависят от /etc/crontab: например, они не наследуют от него настройки переменных окружающей среды. Это изменение относится только к Debian, смотрите примечание в разделе СПЕЦИФИКА DEBIAN ниже.

Как и в случае с /etc/crontab, файлы в каталоге /etc/cron.d отслеживаются изменения. Системный администратор может создавать задания cron в файле /etc/cron.d/ с именами файлов типа "local" или "local-food".

Файл /etc/crontab и файлы в /etc/cron.d должны принадлежать пользователю root и не должны быть доступны для групповой или иной записи. В отличие от области spool, файлы в /etc/cron.d или файлы в /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly также могут быть символическими ссылками, при условии, что и символическая ссылка и файл, на который она указывает, принадлежат пользователю root. Файлы в каталоге /etc/cron.d не обязательно должны быть исполняемыми, в то время как файлы в каталоге /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly должны быть исполняемыми, поскольку они запускаются командой run-parts (для получения дополнительной информации смотрите run-parts(8)).

Демон cron запускается каждую минуту, просматривает все сохраненные crontabs, проверяя каждую команду, чтобы узнать, следует ли ее запускать в текущую минуту . При выполнении команд любые выходные данные отправляются владельцу crontab (или пользователю, указанному в переменной среды окружения MAILTO в файле crontab, если таковой существует) от владельца файла crontab (или с адреса электронной почты, указанного в переменной среды окружения MAILFROM в файле crontab, если таковой существует).. Дочерние копии cron, выполняющие эти процессы, имеют заглавные буквы в своих именах, что будет видно в системном журнале и выходных данных ps.

Кроме того, демон cron каждую минуту проверяет, не изменился ли его каталог spoolемя изменения Aqs или время изменения в файле /etc/crontab) и если это так, то демон cron проверит время изменения во всех crontabs и перезагрузит те, которые изменились. Таким образом, cron не нужно перезапускать всякий раз, когда изменяется crontab. Обратите внимание, что команда crontab(1) обновляет время изменения каталога spool всякий раз, когда она изменяет crontab.

Специальное решение требуется тогда, когда время изменяется на менее чем на 3 часа, например, в начале и в конце летнего времени. Если время переведено вперед, то те задания, которые должны были выполняться в пропущенное время, будут выполнены вскоре после изменения. И наоборот, если время сдвинуто назад менее чем на 3 часа, то те задания, которые попадают в "повторное время", повторно выполняться не будут.

Это затрагивает только те задания, которые выполняются в определенное время (т.е. время, не указанное как @hourly или не указанное с помощью '*в определении часа или минуты). Задания, указанные с помощью подстановочных знаков, немедленно выполняются в соответствии с новым временем.

Изменение времени более чем на 3 часа считается корректировкой времени и новое время используется немедленно .

Демон cron записывает свои действия в системный журнал "cron", а содержимое журнала можно просматривать с помощью стандартного средства syslogd(8).

СРЕДА ОКРУЖЕНИЯ

При настройке в /etc/default/cron в системах Debian настройки переменных локализации окружающей среды демона cron могут осуществляться с помощью файла /etc/environment или с помощью файла /etc/default/locale, при этом значения из последнего файла являются приоритетными по отношению к первому. Эти файлы считываются и будут использоваться для настройки переменных окружающей среды LANG, LC_ALL и LC_CTYPE. Эти переменные затем используются для установки кодировки сообщений электронной почты, которая по умолчанию равна 'C'.

Это НЕ влияет на переменные окружающей среды задач, выполняемых демоном cron. Для получения дополнительной информации о том, как изменить переменные окружающей среды задач, обратитесь к crontab(5).

Демон будет использовать, если это установлено, определение часового пояса из файла /etc/localtime.

Переменные окружающей среды могут быть переопределены в пользовательских определениях user's crontab, но тогда демон cron будет обрабатывать задачи только в одном часовом поясе.

СПЕЦИФИКА DEBIAN

Debian вносит в демон cron некоторые изменения, которые не были доступны в его первоначальной версии. Наиболее значимыми изменениями являются:

    • Поддержка для /etc/cron.{hourly,daily,weekly,monthly} с помощью /etc/crontab,

    • Поддержка для /etc/cron.d (drop-in dir for package crontabs),

    • Поддержка PAM,

    • Поддержка SELinux,

    • Поддержка auditlog,

    • Переход на летнее время и другие изменения или исправления, связанные со временем,

    • SGID crontab(1) вместо SUID root,

    • Расположение файлов и команд, специфичных для Debian,

    • Конфигурация, специфичная для Debian (/etc/default/cron),

    • Множество других мелких функций и исправлений .

Поддержка файлов /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly осуществляется в Debian с помощью настроек по умолчанию в файле /etc/crontab (смотрите пример system-wide в crontab(5)). По умолчанию system-wide crontab содержит четыре задачи: запускаться каждый час, каждый день, каждую неделю и каждый месяц. Каждая из этих задач будет выполняться командой run-parts, использующей каждый из каталогов в качестве аргумента. Эти задачи отключаются (кроме почасовых задач) если установлен демон anacron , для того чтобы предотвратить конфликты между обоими демонами.

Как сказано выше, файлы в этих каталогах должны соответствовать следующим требованиям: быть исполняемыми, принадлежать пользователю root, быть недоступными для записи группой или кем-либо еще, а символические ссылки указывающие на эти файлы, также должны принадлежать пользователю root. Кроме того, имена файлов должны соответствовать требованиям к именам файлов команды run-parts: они должны содержать только буквы и цифры, а также они могут содержать только специальные знаки подчеркивания ('_') и дефисы ('-')).. Любой файл, который не соответствует этим требованиям, не будет выполнен с помощью команды run-parts. Например, любой файл, содержащий точки, будет проигнорирован. Это сделано для предотвращения запуском cron любых файлов, которые остаются в системе управления пакетами Debian при обработке файлов в /etc/cron.d/ в качестве файлов конфигурации (например, это могут быть файлы, заканчивающиеся на .dpkg-dist, .dpkg-orig, .dpkg-old, and .dpkg-new).

Это свойство может использоваться системными администраторами и сопровождающими для включения задач, которые будут выполняться с определенными интервалами. Файлы, создаваемые пакетами в этих каталогах, должны быть одноименными с пакетом, который их предоставляет.

Поддержка файла /etc/cron.d включена в демон cron, который обрабатывает их местоположение как общесистемный каталог crontab spool. Этот каталог может содержать любой файл, определяющий задачи, в формате, используемом в файле /etc/crontab. Таким образом, отличие от пользовательского каталога cron spool, в этих файлах должно быть указано, в определении задачи, имя пользователя, запускающего задачу.

Файлы в этом каталоге должны принадлежать пользователю root, они не обязательно должны быть исполняемыми (это файлы конфигурации, типа /etc/crontab) и должны соответствовать тому же соглашению об именовании, которое используется в команде run-parts(8): они должны содержать только буквы верхнего и нижнего регистра, цифры, знаки подчеркивания и дефисы. Это означает, что они не должны содержать никаких точек. Если для параметра cron -l указано значение (этот параметр можно определить с помощью файла /etc/default/cron, смотрите ниже), то наименования этих файлов должно соответствовать требованиям стандарта LSB (Linux Standard Base), точно таким же, как и для параметра --lsbsysinit в команде run-parts.

Предполагаемое назначение этого свойства - разрешать пакетам, которым требуется более точное планирование, нежели с помощью каталога /etc/cron.{ежечасно, ежедневно, еженедельно, ежемесячно}, создавать, в каталоге /etc/cron.d, дополнительно к файлу crontab, другие файлы . Эти, другие, файлы должны именоваться также как и пакет, который их предоставляет.

Кроме того, настройкой демона cron, по умолчанию, также управляет файл /etc/default/cron, который считывается скриптом init.d, запускающим демон cron. Этот файл определяет, будет ли демон cron считывать системные переменные окружения 's и позволяет добавлять дополнительные параметры в демон cron перед его запуском, либо для настройки журнала, либо для определения того, как он будет обрабатывать файлы в /etc/cron.d.

СМОТРИТЕ ТАКЖЕ

crontab(1), crontab(5), run-parts(8)

АВТОРЫ

Paul Vixie <paul@vix.com>
    Разработал эту страницу руководства (в 1994 году).

Steve Greenland <stevegr@debian.org>
    Сопровождающий этого пакета (с 1996 по 2005 годы).

Javier Fernández-Sanguino Peña <jfs@debian.org>
    Сопровождающий этого пакета (с 2005 по 2014 годы).

Christian Kastner <ckk@debian.org>
    Сопровождающий этого пакета (с 2010 по 2016 годы).

Georges Khaznadar <georgesk@debian.org>
    Сопровождающий этого пакета (с 2022 по 2024 годы).

АВТОРСКИЕ ПРАВА
Авторское право с 1994 года принадлежит Полу Викси (Paul Vixie)

Эту программу можете свободно распространять , за исключением следующего: не удаляйте мое имя из исходного кода или документации (не присваивайте себе мою работу), помечайте свои изменения (не обвиняйте меня в возможных ошибках), не изменяйте и не удаляйте это примечание. Эта программное изделие может быть продано, если покупатель будет поставлять в сборке её исходный код. Данное программное обеспечение не предоставляет никаких гарантий, явных или подразумеваемых; вы используйте его на свой страх и риск, ответственность за ущерб (если таковой имеется), причиненный кому-либо в результате использования данного программного обеспечения, полностью лежит на его пользователе.

Начиная с 1994 года, в эту страницу руководства было внесено множество изменений, автором которых были разработчики Debian, которые поддерживали демон cron; выше был приведен краткий список, более подробную информацию можно найти в файле /usr/share/doc/cron/copyright.

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Aleksandr Felda <isk8da@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).