35.2. Задания at и batch

Тогда как cron используется для назначения повторяющихся задач, команда at используется для назначения одноразового задания на заданное время, а команда batch — для назначения одноразовых задач, которые должны выполняться, когда загрузка системы становится меньше 0,8.

Чтобы использовать at или batch, необходимо, чтобы был установлен RPM-пакет at и запущена служба atd. Чтобы узнать, установлен ли этот пакет, выполните команду rpm -q at. Чтобы определить, работает ли служба, воспользуйтесь командой /sbin/service atd status.

35.2.1. Настройка заданий at

Чтобы назначить выполнение разового задания в определённое время, введите команду at time, где time — время выполнения команды.

Параметр time может быть следующим:

Сначала должно буть указано время, а за ним можно указать необязательную дату. За дополнительной информацией о формате времени, обратитесь к текстовому файлу /usr/share/doc/at-<version>/timespec.

После ввода команды at с аргументом, указывающим время, выводится приглашение at>. Введите команду, которая должна быть выполнена, а затем нажмите [Enter] и [Ctrl]-[D]. Вы можете указать несколько команд, нажимая клавишу [Enter] после ввода каждой команды. Когда вы наберёте все команды, нажмите [Enter] чтобы перейти на пустую строку, а затем нажмите [Ctrl]-[D]. Вы также можете ввести в этом приглашении сценарий оболочки, нажимая [Enter] в конце каждой строки сценария, и нажав [Ctrl]-[D] в пустой строке, чтобы выйти из программы. Если введён сценарий, для его исполнения используется оболочка, указанная в переменной окружения пользователя SHELL, оболочка пользователя для входа в систему или /bin/sh (в зависимости от того, какая будет найдена первой).

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

Чтобы просмотреть запланированные задания, выполните команду atq. За дополнительными сведениями обратитесь к разделу 35.2.3 Просмотр запланированных заданий.

Доступ к команде at можно ограничить. За дополнительной информацией об этом обратитесь к разделу 35.2.5 Управление доступом к at и batch.

35.2.2. Настройка заданий batch

Для выполнения разовой задачи, когда средняя загрузка опускается ниже 0,8, используйте команду batch.

После ввода команды batch появляется приглашение at>. Введите команду, которая должна быть выполнена, а затем нажмите [Enter] и [Ctrl]-[D]. Вы можете указать несколько команд, нажимая клавишу [Enter] после ввода каждой команды. Когда вы наберёте все команды, нажмите [Enter] чтобы перейти на пустую строку, а затем нажмите [Ctrl]-[D]. Вы также можете ввести в этом приглашении сценарий оболочки, нажимая [Enter] в конце каждой строки сценария, и нажав [Ctrl]-[D] в пустой строке, чтобы выйти из программы. Если введён сценарий, для его исполнения используется оболочка, указанная в переменной окружения пользователя SHELL, оболочка пользователя для входа в систему или /bin/sh (в зависимости от того, какая будет найдена первой). Заданный набор команд будет выполнен, как только средняя загрузка опустится ниже 0,8.

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

Чтобы просмотреть запланированные задания, выполните команду atq. За дополнительными сведениями обратитесь к разделу 35.2.3 Просмотр запланированных заданий.

Доступ к команде batch можно ограничить. За дополнительной информацией об этом обратитесь к разделу 35.2.5 Управление доступом к at и batch.

35.2.3. Просмотр запланированных заданий

Чтобы просмотреть запланированные задания at и batch, используйте команду atq. Команда atq показывает список запланированных заданий, выводя каждое задание в отдельной строке. В конце строки указывается номер задания, дата, час, класс задания и имя пользователя. Пользователи могут просматривать только собственные задания. Если команду atq выполняет пользователь root, она выводит все задания всех пользователей.

35.2.4. Дополнительные параметры командной строки

В число дополнительных параметров командой строки at и batch входят:

ПараметрОписание
-fКоманды и сценарий оболочки не вводятся в приглашении, а считываются из файла.
-mПри завершении задания пользователю отправляется почтовое сообщение.
-vВыводит время, на которое запланировано задание.

Таблица 35-1. Параметры командной строки at и batch

35.2.5. Управление доступом к at и batch

Файлы /etc/at.allow и /etc/at.deny позволяют ограничить доступ к командам at и batch. Формат списков управления доступом в обоих файлах прост — в каждой строке файла указывается одно имя пользователя. Пробельные символы в этих файлах не допускаются. Перезапускать демон at (atd) после изменения файлов управления доступом не требуется. Файлы управления доступом обрабатываются каждый раз, когда пользователь пытается выполнить команды at и batch.

Пользователь root всегда может выполнять команды at and batch, вне зависимости от файлов управления доступом.

Если файл at.allow существует, использовать at и batch разрешено только перечисленным в нём пользователям, а файл at.deny игнорируется.

Если файл at.allow не существует, пользователям, перечисленным в at.deny, использовать at и batch не разрешается.

35.2.6. Запуск и остановка службы

Чтобы запустить службу at, выполните команду /sbin/service atd start. Чтобы остановить её, выполните команду /sbin/service atd stop. Рекомендуется настроить запуск этой службы при загрузке системы. За подробными инструкциями по настройка автоматического запуска службы cron при загрузке системы обратитесь к главе 20 Управление доступом к службам.