Планирование периодической фоновой работы (POSIX)
crontab [-d каталог_cron] [-u пользователь] [файл]
crontab [-d каталог_cron] [-e | -l | -r] [-u пользователь]
EDITOR
не определен другой редактор, используется vi.root
.ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита crontab используется для создания или замены пользовательской записи crontab. Новую запись crontab можно указать путем определения файла, содержащего настройки для записей crontab. Если этот файл не определен, используется стандартный поток ввода.
Для этой утилиты в полномочиях пользователя необходимо установить бит setuid ("set user ID" (установить идентификатор пользователя)). В случае использования утилит mkefs, mketfs или mkifs на хосте Windows для включения этой утилиты в образ необходимо задать атрибут perms для явного определения полномочий, а также атрибуты uid и gid для корректной настройки принадлежности. |
Утилиту crontab могут выполнять пользователи, имена которых содержатся в файле /var/spool/cron/cron.allow
. Если этот файл не существует, то в файле /var/spool/cron/cron.deny
необходимо проверить запрещен ли доступ пользователя к утилите crontab. Если этот файл также не существует, изменение записей crontab разрешено только суперпользователю. Если файл cron.allow
не существует, а файл cron.deny
существует и является пустым, необходимыми полномочиями обладают все пользователи. В каждой строке файла полномочий содержится только одно имя пользователя.
Каждая указанная команда выполняется из основного каталога с использованием командного интерпретатора (/bin/sh
). Утилита cron обеспечивает для командного интерпретатора среду по умолчанию путем определения значений HOME
, LOGNAME
, SHELL
(=/bin/sh
), PATH
(=:/bin:/usr/bin
) и TZ
. Пользователи, которым требуется выполнить файл .profile
, должны напрямую выполнить его в записи crontab.
Запись crontab состоит из строк, в каждой из которых содержится 6 полей. Эти поля отделяются друг от друга пробелами. Первые пять из них – целочисленные шаблоны, определяющие следующие значения:
Каждый из этих шаблонов может быть обозначен звездочкой (все допустимые значения), элементом, списком элементов, разделенных запятой, или диапазоном через дефис (-
).
Элемент – это число или два числа, указанные через дефис (т.е. интервал, включающий предельные значения). День может быть определен в двух полях (день месяца и день недели). Если указаны два значения, они оба применяются.
В качестве примера определения двух видов дней можно привести следующую строку:
0 0 1,15 * 1
Команда запускается в 00:00 на 1-й и 15-й день каждого месяца, а также каждый понедельник в 00:00. Для определения дней только в одном поле в другом поле необходимо ввести значение *. Пример.
0 0 * * 1
Команда выполняется только по понедельникам.
Шестое поле строки в записи crontab – это строка, выполняемая интерпретатором команд в определенное время. Символ % в этом поле (если он не замаскирован обратной косой чертой) преобразуется в символ newline (символ новой строки).
Интерпретатор команд выполняет только первую строку (до символа % или до конца строки) поля команды.
Примеры записей crontab
Вызов программы calendar ежедневно через 1 минуту после полуночи:
1 0 * * * calendar -
Просмотр фактического времени на системной консоли каждые 20 минут:
1,21,41 * * * * (echo -n " "; date; echo) > /dev/con1
Очистка рабочих каталогов UUCP каждый день недели в 5:30:
30 5 * * 1-5 /usr/lib/uucp/uuclean
Удаление всех файлов в каталоге /tmp
, не измененных за последние 7 дней:
0 4 * * * find /tmp -mtime +7 -exec rm -f {} \;
Для получения вывода команд перенаправьте его в файл. |
Вывод собственной записи crontab:
crontab -l
При возникновении ошибки диагностическое сообщение записывается в стандартный поток ошибок.
Содержимое файлов crontab может считываться в стандартном потоке ввода при их создании (если не указаны опции -e, -l и -r) и если значение файл в командной строке не определено.
Во время изменения файла crontab редактор, вызываемый утилитой crontab, использует поток ввода, устройство вывода и поток ошибок, стандартные для crontab.
Утилит crontab использует следующие файлы, связанные с одним из файлов в каталоге /var/spool/cron
или в каталоге, указанном в опции -d:
При неосторожном вводе утилиты crontab без аргумента не следует использовать комбинацию клавиш Ctrl - D
(конец файла), поскольку при этом файл crontab будет заменен пустым файлом. В этом случае необходимо завершить выполнение утилиты путем ввода символа прерывания. Как правило, для этого используется комбинация клавиш Ctrl - C
.
Базовые подсистемы ЗОСРВ «Нейтрино», POSIX
Предыдущий раздел: Утилиты