SliTaz Man Pages

Community Doc Forum Pro Shop Bugs Hg Cook

CRONTAB

Section: File Formats (5)
Updated: 24 January 1994
Index Return to Main Contents

ИМЯ

crontab — таблицы для управления cron'ом

ОПИСАНИЕ

Файл crontab содержит инструкции для демона cron(8) в общей форме: «запустить эту команду в указанное время, определенной даты». Каждый пользователь имеет свою собственную crontab и команды в любых других заданных crontab будут выполнены для владельцев этих crontab. Uucp и News обычно имеют свои собственные crontab, устраняющие необходимость в явном запуске su(1) как части команды для cron.

Пустые строки, лидирущие пробелы и табуляции игнорируются. Строки, у которых первый символ решетка (#) считаются комментариями, и игнорируются тоже. Заметим, что комментарии не допускаются в тех же строках, где расположены команды, так как они будут распознаны как части команды. По этой же причине комментарии не разрешены тех же строках, что устанавливают переменные окружения.

Активная строка в crontab представляет собой либо установку переменной окружения или команду для cron. Установка переменной окружения осуществляется в следующей форме:

имя_переменной = величина
где пробелы вокруг знака равентсва (=) необязательны, и любые последующие пробелы после величины будут поняты как часть величины присвоенной имени_переменной. Строка величина может быть помещена в кавычки (одинарные или двойные) для сохранения пробелов в начале и конце.

Различные переменные окружения устанавливаются автоматически демоном cron(8). SHELL устанавливается в /bin/sh, а LOGNAME и HOME берутся из строки файла /etc/passwd соответствующей собственнику crontab. HOME и SHELL могут быть перекрыты установками в crontab; LOGNAME нет.

(Другое замечание: переменная LOGNAME иногда называется USER в BSD системах… в этих системах USER устанавливается также.)

В добавлении к LOGNAME, HOME, и SHELL, cron(8) проверяет переменную MAILTO если он имеет какие-либо причины отослать почтовое сообщение как результат запуска команды в «этой» crontab. Если MAILTO определена, но пуста (MAILTO=""), то почтовое сообщение послано не будет. В противном случае почта посылается собственнику crontab. Эта переменная полезна если вы решили использовать допустим /bin/mail как вашу почтовую программу вместо /usr/lib/sendmail. /bin/mail не является псевдонимом и UUCP обычно не сможет читать его почту.

Формат команды cron очень похож на стандарт V7, с некоторым количеством совместимых снизу вверх дополнительных возможностей. Каждая строка имеет пять полей времени и поле даты, за которыми следуют имя пользователя, если это системный crontab файл, и команда. Команды запускаются с помощью cron(8) когда поля минута, час и месяц года совпадут с текущим временем и когда одно из полей дня (день месяца, или день недели) совпадут с текущими (смотрите замечание ниже). cron(8) проверяет записи в crontab каждую минуту. Поля времени и даты это:

поледопустимые значения
минуты0–59
часы0–23
дни месяца0–31
месяц0–12 (или название месяца, см. ниже)
день недели0–7 (0 или 7 — это воскресение, или имена дней недели)

Поле может содержать звездочку (*), которая всегда обозначает значения от первого до последнего.

Допускается также применение диапазонов чисел. Диапазоны это два числа, разделенные тире. Заданные диапазоны включают в себя значения от первого значения диапазона до последнего. Например, 8–11 для поля «часы» определяет запуск в 8, 9, 10 и 11 часов.

Позволяются также и списки. Список это числа (или диапазоны) разделенные запятыми. Например: «1,2,5,9», «0-4,8-12».

Значения шага можут быть использованы для пропусков в диапазонах. Следуя за диапазоном «/число» определяет что будет пропущено число значений этого диапазона. Например, «0-23/2» может быть использовано в поле часы для назначения запуска команды через час (вариант в стандарте V7 это «0,2,4,6,8,10,12,14,16,18,20,22»). Шаги также доступны после звездочки, так что если вы хотите сказать «каждые два часа», то используйте «*/2».

Для полей «месяц» и «день недели» могут быть использованы имена. Используйте первые три буквы нужного дня или месяца (регистр букв не имеет значения). Диапазоны или списки имен не разрешены.

Поле с номером «шесть» (остаток стоки) определяет команду для запуска. Полная командная порция строки, завершенная переводом строки или символом %, будет выполненна /bin/sh или другим shell'ом определенным в переменной SHELL в crontab. Если знак процента (%) в команде, предваряется обратной косой чертой (\), то он будет заменен на символ перевода строки и все данные после первого % будут посланы для команды как стандартный ввод.

Замечание: День выполнения команды может быть задан в двух полях — день месяца, и день недели. Если оба поля защищены (т.е не являются *), то команда будет запущена, когда любое поле совпадет с текущим временем. Например запись:

30 4 1,15 * 5
должна заставить команду запустится в 4:30 по полуночи первого и пятнадцатого каждого месяца плюс в каждую Пятницу.

ПРИМЕР ФАЙЛА CRON


# используйте /bin/sh для запуска команд, не обращая внимание на
# то, что написано в /etc/passwd
SHELL=/bin/sh
# почтовые сообщения слать на имя ‘paul’, не обращая внимания
# на то, чей это crontab
MAILTO=paul
#
# запускать пять минут пополуночи, каждый день
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# запускать в 14:15 первого числа каждого месяца
15 14 1 * *     $HOME/bin/monthly
# запускать в 22.00  каждый день недели, чтобы досадить Joe
0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "запускать в 00:23, 2:00, 4:00 ..., каждый день"
5 4 * * sun     echo "запускать в 4:05 каждое воскресенье"

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

cron(8), crontab(1)

ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ

Когда задается день недели, то дни и 0 и 7 будут соответствовать воскресенью. BSD и ATT с этим не согласятся.

Списки и диапазоны могут сосуществовать в одном и томже поле. «1-3,7-9» будут отвергнуты cron'ом ATT и BSD — они допускают только либо «1-3» либо «7,8,9».

Списки могут включать «шаги», например «1-9/2» соответствует «1,3,5,7,9».

Месяцы или дни недели могут быть заданы именами.

В crontab могут быть установлены переменные окружения. В BSD или ATT, окружение управляется дочерними процессами расположенными в одном из /etc/rc.

Вывод команд отсылается почтой хозяину crontab (BSD так не делает), а также может отправлятся кому-либо другому (SysV так не делает), или может быть вообще отключен и не будет отсылаться никому (SysV так не делает).

АВТОР

Paul Vixie <paul@vix.com>

Index

ИМЯ
ОПИСАНИЕ
ПРИМЕР ФАЙЛА CRON
СМОТРИТЕ ТАКЖЕ
ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ
АВТОР