Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Страницы справочного руководства ОС UNIX на русском : man at(1)


Информационный Канал Subscribe.Ru

Выпуск 87

man at(1)

Сегодняшний выпуск посвящен утилите at(1), позволяющей выполнять команды в указанное время. Перевод выполнен сегодня, 21 октября, по справочному руководству Solaris 8.


at(1)

НАЗВАНИЕ

at, batch - выполнять команды позже

СИНТАКСИС

at [ -c | -k | -s ] [ -m ] [ -f файл ] [ -p проект ] [ -q очередь ]
    -t время
at [ -c | -k | -s ] [ -m ] [ -f файл ] [ -p проект ] [ -q очередь ]
    спецификация_времени ...
at -l [ -p проект ] [ -q очередь ] [ идентификатор_задания_at ... ]
at -r идентификатор_задания_at ...
batch [ -p проект ]

ОПИСАНИЕ

    at

Утилита at читает команды со стандартного входного потока и группирует их в виде задания at для выполнения позже, в заданное время.

Задание at будет выполняться отдельным процессом командного интерпретатора, работающим в отдельной группе процессов без управляющего терминала, но переменные среды, текущий каталог, маска создания файла (см. umask(1)) и ограничения системных ресурсов (только для командных интерпретаторов sh и ksh, см. ulimit(1)), имеющиеся в момент вызова утилиты at, сохраняются и будут использованы при выполнении задания at.

При посылке задания at его идентификатор и запланированное время выполнения выдаются в стандартный поток ошибок. идентификатор_задания_at - это строка, состоящая исключительно из алфавитноцифровых символов и символа точки. идентификатор_задания_at присваивается заданию системой при постановке на выполнение и является уникальным.

Уведомление пользователя, а также обработка стандартного выходного потока и стандартного потока ошибок задания описано ниже (см. опцию -m).

Пользователям разрешается использовать команды at и batch (см. ниже), если их регистрационные имена указаны в файле /usr/lib/cron/at.allow. Если этот файл не существует, прверяется файл /usr/lib/cron/at.deny, чтобы определить, не запрещен ли пользователю доступ к at. Если ни один из файлов не существует, посылать задание может только пользователь с привилегией solaris.jobs.user. Если существует только файл at.deny, и он пустой, использовать утилиту разрешается всем. Файлы at.allow и at.deny содержат по одному регисчтрационному имени пользователя в строке.

    batch

Утилита batch читает команды для выполнения в дальнейшем. Она эквивалентна команде:

at -q b -m now

где очередь b - специальная очередь at для пакетных (batch) заданий. Пакетные задания ставятся в эту очередь для немедленного выполнения.

ОПЦИИ

Поддерживаются следующие опции. Если не указаны опции -c, -k или -s, используемый командный интерпретатор задает переменная среды SHELL.

-c
Командный интерпретатор C shell. Для выполнения задания at используется командный интерпретатор csh(1).

-k
Командный интерпретатор Korn shell. Для выполнения задания at используется командный интерпретатор ksh(1).

-s
Командный интерпретатор Bourne shell. Для выполнения задания at используется командный интерпретатор sh(1).

-f файл
Здает полное имя файла, используемого в качестве источника задания at вместо стандартного входного потока.

-l (буква "эл")
Выдает информацию о всех запланированных заданиях вызвавшего пользователя, еслне заданы операнды идентификатор_задания_at. Если идентфикаторы заданий указаны, выдает информацию только об этих заданиях.

-m
Посылает сообщение по электронной почте вызвавшему пользователю после запуска задания at, уведомляющее о его выполнении. Стандартный выходной поток и стандартный поток ошибок, выданные заданием at, тоже отправляютс пользователю по электронной почте, если не перенаправлены. Сообщение будет послано, даже если задание ничего не выдало в потоки.

Если опция -m не указана, стандартный выходной поток и стандартный поток ошибок задания будут направлены пользователю по электронной почте, если не перенаправлены; если ничего в эти потоки не выдано, пользователь не уведомляется выполнении задания.

-p проект
Задает, в каком проекте будет выполняться задание at или batch. При использовании с опцией -l ограничивает поиск только указанным проектом. Значения параметра проект будут интерпретироваться сначала как имя, а потом как возможный идентификатор проекта, если состоят исключительно из цифр. По умолчанию используется текущий проект пользователя.

-q очередь
Задает, в каку очередь поставить задание для выполнения. При использовании с опцией -l ограничивает поиск указанной очередью. В качестве значений параметра очередь могут использоваться только строчные буквы от a до z. По умолчанию задания at помещаются в очередь a. Очередь b зарезервирована для пакетных заданий batch. Поскольку очередь c зарезервирована для заданий cron, ее нельзя указывать в опции -q.

-r идентификатор_задания_at
Удаляет задания с указанными идентификаторами_задания_at, ранее запланированные к выполнению с помощью утилиты at.

-t время
Посылает задание для выполнения в указанное время, которое должно задаваться в формате, определяемом утилитой touch(1).

ОПЕРАНДЫ

Поддерживаются следующие операнды:

идентификатор_задания_at
Имя, выданное при вызове утилиты at, когда задание было запланировано к выполнению.
спецификация_времени
Дата и время выполнения задания. Все операнды спецификация_вермени интерпретируются так, как если бы они были разделены пробелами и конкатенированы. Дата и время интерпретируются относительно часового пояса пользователя (задаваемого переменной среды TZ), если только имя часового пояса не указано в представленном ниже компоненте время.

В локали "C" три компонента строки спецификации времени можно описать следующим образом. Все значения категорий LC_TIME в локали "C" распознаются независимо от регистра.

время
Время может задаваться одной, двумя или четырьмя цифрами. Одно- и двузначные числа считаются часами, а четырехзначные - часами и минутами. Время также можно задавать двумя числами через двоеточие, - часов:минут. После времени можно указывать признак времени суток (одно из значений для ключевого слова am_pm в категории локали LC_TIME). Если он не указан, время считается заданным в 24-часовом формате. Далее может быть указано имя часового пояса, GMT, UCT или ZULU (независимо от регистра), означающее, что время задано как скоординированное универсальное время (Coordinated Universal Time). Другие часовые пояса можно задавать с помощью переменной среды TZ. В поле времени в локали "C" также может указываться одна из следующих лексем:
midnight
Обозначает время 12:00 am (12 ночи, 00:00 - полночь).
noon
Обозначет время 12:00 pm (12 дня - полдень).
now
Обозначает текущий день и время. При постановке задания now, оно отправляется потенциально для немедленного выполнения (т.е. возможны только непредвиденные задержки в связи с выполнением других заданий).
дата
Необязательный параметр дата можно задавать в виде имени месяца (одно из значений ключевых слов mon или abmon в категории локали LC_TIME), за которым идет день месяца (и, возможно, год через запятую) или день недели (одно из значений ключевых слов day или abday в категории локали LC_TIME). В локали "C" распознаются две специальных даты:
today
Обозначает текущий день.
tomorrow
Обозначает следующий день.
Если дата не задана, предполагается текущий день, если указанное время превосходит текущее, и следующий день, если не превосходит. Если указанный месяц - меньше текущего (и год не задан), предполагается следующий год.

инкремент
Необязательный инкремент - это число, предваренное знаком плюс (+) и снабженное одним из следующих суффиксов: minutes, hours, days, weeks, months или years. (Форма единсвенного числа, без s, тоже поддерживается.) Ключевое слово next эквивалентно инкременту + 1. Например, следующие команды эквивалентны:
at 2pm + 1 week
at 2pm next week

ИСПОЛЬЗОВАНИЕ

Передставленный здесь формат командной строки at гарантированно работает только в локали "C". В других локалях значения midnight, noon, now, mon, abmon, day, abday, today, tomorrow, minutes, hours, days, weeks, months, years и next не поддерживаются.

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

ПРИМЕРЫ

    at

Пример 1: Типичный запуск с терминала

Следующую команду можно вводить с терминала:

$ at -m 0730 tomorrow
sort < file >outfile
<EOT>

Пример 2: Перенаправление результатов

Эта команда, демонстрирующая перенаправление стандартного потока ошибок по конвейеру, пригодится в комнадных файлах (порядок перенаправлений существенен):

$ at now + 1 hour <<!
diff file1 file2 2>&1 >outfile | mailx mygroup
!

Пример 3: Повторная постановка себя на выполнение

Чтобы задание само поставило себя на повторное выполнение, в тексте задания можно выполнить команду at. Например, следующий "ежедневный сценарий" по имени my.daily будет выполняться каждый день (хотя для подобного рода задач лучше использовать механизм crontab):

# my.daily выполняется каждый день
at now tomorrow < my.daily
daily-processing

Пример 4: Различные форматы задания времени и операндов

Три компонента спецификации времени в локали "C" позволяют эффективно его задавать, если только интерпретируются однозначно. Вот некоторые примеры указания времени выполнения задания:

at 0815am Jan 24
at 8 :15amjan24
at now "+ 1day"
at 5 pm FRIday
at '17
utc+
30minutes'

    batch

Привер 5: Типичный запуск с терминала

Следующую команду можно вводить с терминала:

$ batch
sort <file >outfile
<EOT>

Пример 6: Перенаправление результатов

Эта команда, демонстрирующая перенаправление стандартного потока ошибок по конвейеру, пригодится в комнадных файлах (порядок перенаправлений существенен):

$ batch <<!
diff file1 file2 2>&1 >outfile | mailx mygroup
!

ПЕРЕМЕННЫЕ СРЕДЫ

Описание следующих переменных среды: LC_CTYPE, LC_MESSAGES, NLSPATH и LC_TIME, влияющих на работу команд at и batch, см. на странице справочного руководства environ(5).

SHELL
Задает командный интерпретатор, используемый для выполнения задания at. Если эта переменная не установлена или имеет пустое значение, будет использоваться командный интерпретатор sh. Если она имеет значение, отличное от sh, для выполнения будет использоваться соответствующий командный интерпретатор; будет выдано диагностическое сообщение, информирующее об используемом командном интерпретаторе.
TZ
Задает часовой пояс. Задание будет послано на выполнение в указанное спецификацией_времени или аргументом опции -t время в часовом поясе, задаваемом переменной TZ. Если в спецификации_времени указан часовой пояс, он переопределяет значение, задаваемое переменной TZ. Если в спецификации_времени часовой пояс не указан, а переменная TZ не устанволена или имеет пустое значение, будет использован неопределенный стандартный часовой пояс.
DATEMSK
Если переменная среды DATEMSK установлена, утилита at будет использовать ее значение как полное имя файла-шаблона, содержащего строки формата. Эти строки состоят из спецификаторов формата и текстовых символов, и используются для расширения набора допустимых форматов даты на разных языках путем соответствующих установок переменных среды LANG или LC_TIME. Список допустимых спецификаторов формата можно найти на странице справочного руководства getdate(3C). Форматы аргументов времени и даты, описанные в разделе "ОПЕРАНДЫ", специальные имена noon, midnight, now, next, today, tomorrow и аргумент инкремент не распознаются, когда установлена переменная DATEMSK.

СТАТУС ВЫХОДА

Команды завершаются со следующими статусами выхода:

0 Утилита at успешно сформировала, удалила или выдала соответствующие задания.
>0 Произошла ошибка и задание at не поставлено в очередь для выполнения.

ФАЙЛЫ

/usr/lib/cron/at.allow
имена пользователей, по одному в строке, которым разрешен доступ к утилитам at и batch
/usr/lib/cron/at.deny
имена пользователей, по одному в строке, которым запрещен доступ к утилитам at и batch

АТРИБУТЫ

Описание следующих атрибутов см. на странице справочного руководства attributes(5):

    at

ТИП АТРИБУТА ЗНАЧЕНИЕ АТРИБУТА
Доступен в пакете SUNWcsu
CSI Не включено

    batch

ТИП АТРИБУТА ЗНАЧЕНИЕ АТРИБУТА
Доступен в пакете SUNWesu
CSI Включено

ССЫЛКИ

auths(1), crontab(1), csh(1), date(1), ksh(1), sh(1), touch(1), ulimit(1), umask(1), cron(1M), getdate(3C), auth_attr(4), attributes(5), environ(5)

ПРИМЕЧАНИЯ

Независимо от количества используемых очередей, демон cron(1M) имеет ограничение - не более 100 выполняемых заданий в каждый момент времени.

При выполнении заданий at демоном cron возможны задержки. В некоторых случаях, эти задержки могут достигнуть такой продолжительности, что обработка заданий cron кажется зависшей. Рано или поздно, все задания будут выполнены. При слишком продолжительных задержках остается только остановить и перезапустить демон cron.

Последнее изменение: 10 января 20000 года

Copyright 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык


В следующем выпуске

Скорее всего, пойдем по плану в алфавитном порядке - cat(1). Но поскольку я собираюсь описывать процесс начальной загрузки, возможно также появление переводов man-страниц inittab(4) или system(4). Выпуск выйдет в конце недели. Следите за новостями на сайте рассылки и, особенно, в разделе, посвященном Solaris 8.

С наилучшими пожеланиями,

  В.К.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное