Отложенное выполнение заданий

Часто возникает необходимость выполнить какую-либо команду в заданный момент будущего или же в тот момент, когда загрузка системы минимальна. Команда at позволяет указать момент времени, в который должна быть ис- полнена команда. Команда at ставит задания в очередь, которая обслужива- ется демоном atd.

Заданная команда будет выполнена один раз в указанное время (пример 15.1).

 

Пример 15.1. Отложенное выполнение задания

 

$ date

Tue Jan 5 19:02:21 YEKT 2010

$ at 22:20

warning: commands will be executed using /bin/sh at> ps -ef | mail -s 'At command' user1

at> <EOT>

job 1 at 2010-01-05 22:20

 

В 19:02 была запущена команда at 22:20 (пример 15.1). Команда at, вызван- ная так, позволяет ввести команды, которые необходимо выполнить в буду- щем. В этом примере была введена команда, посылающая в заданное время


 

пользователю user1 список процессов в подробном формате. Ввод команд завершается нажатием комбинации клавиш <Ctrl>+<D>.

Помимо указания времени выполнения команды можно задавать период вре- мени, через который должна быть выполнена заданная команда (пример 15.2).

 

Пример 15.2. Установка времени выполнения относительно текущего момента

 

$ at now +10 minutes

 

В этом случае команда at выполнит команду, заданную в ее интерактивном сеансе, через десять минут относительно текущего момента времени.

Команды для исполнения можно передать команде at через стандартный по- ток ввода. Также можно опцией -f указать имя файла с командами. Если ука- зана опция -m , то команда at посылает вызвавшему ее пользователю сооб- щение по электронной почте о том, что задание выполнено.

Получить список заданий можно, используя команду atq или at -l (при-

мер 15.3).

 

Пример 15.3. Вывод списка заданий

 

$ atq

1 2010-01-05 22:20 a user1

 

При исполнении этой команды обычный пользователь получает список толь- ко его заданий, а суперпользователь — список заданий всех пользователей.

Для удаления задания из очереди следует вызвать команду atrm или at -d.

Номер задания должен быть указан в качестве аргумента (пример 15.4).

 

Пример 15.4. Удаление задания

 

$ echo 'wall Hello!' | at -m +1 minutes

warning: commands will be executed using /bin/sh job 2 at 2010-01-05 20:04

$ atq

2 2010-01-05 20:04 a user1

$ atrm 2

$ atq


 

В примере 15.4 была задана команда wall, которая должна была вывести со- общение "Hello!" на терминалы всех пользователей, находящихся в сеансе, через минуту после ее вызова. Однако эта команда снята с исполнения ко- мандой atrm.

Команда batch отличается от at тем, что она выполняет задание не через четко определенный промежуток времени, а в тот момент, когда средняя загрузка системы уменьшается до 0,8. Значение средней загрузки системы берется из файла /proc/loadavg. В остальном команда batch аналогична ко- манде at.

В системе могут быть файлы /etc/at.allow и /etc/at.deny. Если существует файл

/etc/at.allow, то только пользователи, перечисленные в нем, могут вызывать команду at. Если этого файла нет, то проверяется наличие файла /etc/at.deny, где указывают пользователей, которым запрещено вызывать at.

 








Дата добавления: 2015-06-12; просмотров: 876;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.