Пользовательские команды |
crontab(1) |
crontab - управление пользовательским файлом заданий cron
Утилита crontab управляет доступом пользователя к демону cron (см. cron(1M)) путем копирования, создания, выдачи содержимого и удаления файлов crontab, таблиц заданий. При вызове без опций, crontab копирует указанный файл или стандартный входной поток (если файл не указан) в каталог, к котором хранятся пользовательские таблицы заданий cron.
Доступ пользователя к crontab разрешен, если:
Доступ пользователя к crontab не разрешен, если:
Учтите, что правила разрешения и запрещения выполнения заданий применимы к пользователю root только если существуют файлы allow/deny.
В файлах allow/deny надо задавать по одному имени пользователя в строке.
Файл crontab состоит из строк, содержащих шесть полей. Поля разделяются пробелмами или символами табуляции. Первые пять полей - целочисленные шаблоны, задающие:
минуту (0-59),
час (0-23),
день месяца (1-31),
месяц года (1-12),
день недели (0-6, причем 0=воскресенье).
Каждый из этих шаблонов может представлять собой звездочку (которая обозначает все допустимые значения) или список элементов через запятые. Элемент - число или два числа через дефис (что обозначает закрытый интервал). Обратите внимание, что дни можно указывать в двух полях (день месяца и день недели). Оба поля учитываются, если заданы в виде списка элементов. См. ПРИМЕРЫ.
Шестое поле в строке файла crontab - строка, выполняемая командным интерпретатором в указанные моменты времени. Символ % (процент) в этом поле, если он не замаскирован \ (обратной косой), преобразуется в символ новой строки.
Только первая строка (до символа % или до конца строки) поля команды выполняется командным интерпретатором. Другие строки передаются команде как стандартный входной поток. Любая строка, начинающаяся символом #, считается комментарием и игнорируется. Файл не должен содержать пустых строк.
Командный интерпретатор вызывается из начального каталога соответствующего пользователя с аргументом arg0, равным sh. Пользователи, желающие, чтобы был выполнен их файл .profile, должны явно это указать в команде в файле crontab. Демон cron предоставляет каждому командному интерпретатору стандартную среду, задавая переменные HOME, LOGNAME, SHELL(=/bin/sh), TZ и PATH. Стандартное значение переменной PATH для пользовательских заданий cron - /usr/bin, а для заданий cron пользователя root - /usr/sbin:/usr/bin. Стандартное значение переменной PATH можно задать в файле /etc/default/cron; см. cron(1M).
Если стандартный выходной поток и стандартный поток ошибок команд не перенаправлены, любые сгенерированные результаты или сообщения об ошибках будут отправлены пользователю по электронной почте.
Поддерживаются следующие опции:
-e | Редактирует копию файла crontab текущего пользователя или создает пустой файл для редактирования, если соответствующего файла crontab не существует. Когда редактирование завершается, файл устанавливается в качестве пользовательского файла crontab. Если задано имя пользователя, реадктируется файл crontab этого, а не текущего пользователя; это может сделать только пользователь с привилегией solaris.jobs.admin. Переменная среды EDITOR задает редактор, вызываемый при указании опции -e. Стандартным редактором является ed(1). Учтите, что все задания в файле crontab должны создаваться с помощью утилиты crontab; не стоит добавлять задания, просто редактируя файл crontab, поскольку демон cron не будет знать об изменениях, выполненных таким способом. |
-l | Выдает файл crontab вызвавшего пользователя. Только пользователь с привилегией solaris.jobs.admin может указывать имя пользователя после опций -r или -l для удаления или просмотра файла crontab другого пользователя. |
-r | Удаляет пользовательский файл crontab из каталога заданий cron. |
Это задание удаляет файлы core каждый день в 3:15 утра:
15 3 * * 1-5 find $HOME -name core 2>/dev/null | xargs rm -f
0 12 14 2 * mailx john%Happy Birthday!%Time for lunch.
Следующее задание
0 0 1,15 * 1
будет выполнять команду 1 и 15 числа каждого месяца, а также по понедельникам.
Чтобы задать дни выполнения только одним способом, в другом поле надо поставить *. Например, задание:
0 0 * * 1
приведет к выполнению команды только по понедельникам.
Описание следующих переменных среды: LC_CTYPE, LC_MESSAGES и NLSPATH, влияющих на работу команды crontab, см. на странице справочного руководства environ(5).
Команда завершается со следующими статусами выхода:
0 | Успешное выполнение. |
>0 | Произошла ошибка. |
Описание следующих атрибутов см. на странице справочного руководства attributes(5):
ТИП АТРИБУТА | ЗНАЧЕНИЕ АТРИБУТА |
Доступен в пакете | SUNWcsu |
Если вы случайно ввели команду crontab без аргументов, не пытайтесь завершить работу с ней с помощью комбинации клавиш Control-d. Это приведет к удалению всех записей в файле crontab. Вместо этого, нажмите Control-c для выхода.
Если авторизованный пользователь изменяет файл crontab другого пользователя, результат может оказаться непредсказуемым. Вместо этого, суперпользователь должен сначала выполнить команду su(1M) для перехода в среду другого пользователя, а затем изменять его файл crontab.
При изменении пользовательского файла crontab с помощью команды crontab процесс cron немедленно учитывает эти изменения, если не выполняются задания cron. Однако если в момент изменения демон cron запускает задания cron, может потребоваться до 60 секунд, прежде чем демон cron учтет это изменение. Поэтому для безопасного выполнения надо добавлять задания, которые должны выполниться не ранее, чем через минуту с момента добавления.
Последнее изменение: 13 августа 1999 года
Copyright 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |