Отложенное выполнение заданий
Часто возникает необходимость выполнить какую-либо команду в заданный момент будущего или же в тот момент, когда загрузка системы минимальна. Команда 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;