Команды batch
и at
позволяют вам определять время запуска команды
или последовательности команд. При помощи команды batch
система
определяет время запуска команды, вы это можете определить с помощью команды
at
. Обе команды ожидают ввод со стандартного ввода (терминала); список
команд, вводимых с терминала, должен завершаться нажатием клавиши ^d
(одновременное нажатие клавиши Ctrl и клавиши d).
Команда batch
очень полезна, если вы запускаете процесс или программу,
которые занимают много системного времени. Команда batch
представляет
системе задание (содержащее последовательность команд для выполнения). Задание
ставится в очередь и запускается как только у системы появляется возможность.
Это позволяет системе быстро отвечать на запросы других пользователей. Общий
формат команды batch
:
batch
первая команда
. . .
последняя команда
<^d>
Если запускается только одна команда, то ее можно ввести в одной командной строке:
batch command_line
В следующем примере batch
используется для выполнения команды grep
в согласованное время. Команда grep
осуществляет поиск всех файлов в
текущем каталоге и перенаправляет вывод в файл dol.file.
$ batch
grep dollar * > dol.file
<^d>
job 155223141.b at Sun Dec 11:14:54 1989
$
После того как вы зададите задание batch
, система выдаст ответ, в котором
даны номер задания, дата и время. Номер задания не то же самое, что номер
процесса, который система генерирует, когда вы запускаете команду в фоновом
режиме.
Команда at
позволяет вам указывать точное время выполнения команд. Общий
формат команды at
:
at time
первая команда
. . .
последняя команда
<^d>
Аргумент time
состоит из времени дня и даты, если дата не сегодняшняя.
В следующем примере показано, как использовать команду at
для посылки
сообщения happy birthday пользователю с регистрационным именем emily:
$
at 8:15am Feb 27
banner happy birthday | mail emily
<^d>
$
Обратите внимание, что команда at
подобно команде batch
выдает
ответ с номером задания, датой и временем.
Если вы не хотите, чтобы команды, находящиеся в данный момент в очереди заданий
batch
или at
были выполнены, то можете удалить их из очереди. Для
этого воспользуйтесь опцией -r
в команде at
, указав ее с номером
задания. Общий формат такой команды:
at -r jobnumber
Если вы забыли номер задания, то команда at -l
распечатает вам список
текущих заданий в очереди batch
или at
, как показано на следующем
экране:
$ at -l
CW user mylogin 168302040.a at Sat Nov 25 13:00:00 1989
user mylogin 453400603.a at Fri Feb 24 08:15:00 1989
$
Таким образом команда at
выполняет команды в указанное время. Вы можете
использовать от одной до 4-х цифр и буквосочетания "am" и "pm", чтобы указать
время. Чтобы указать дату, задайте имя месяца и вслед за ним число. Если задание
должно быть выполнено сегодня, то дату вводить не надо.