at (утилита) (at (rmnlnmg))
Значимость предмета статьи поставлена под сомнение. |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
At | |
---|---|
Тип | утилита UNIX[вд] |
Медиафайлы на Викискладе |
at — Unix-утилита, читающая команды со стандартного входного потока и группирующая их в виде задания at для выполнения позже, в заданное время. Данная команда также доступна в среде MS Windows.
Синтаксис
[править | править код]- at [-V] [-q очередь] [-f файл] [-mldbv] время
- at -c задание [задание…]
Описание
[править | править код]at и batch читают команды из стандартного ввода или заданного файла, которые будут выполнены в определённое время, используя Bash.
- at
- запускает команды в заданное время.
- atq
- список заданий, заданных пользователем, если пользователь не суперпользователь; в этом случае выдаются все задания.
- atrm
- удаляет задания.
- batch
- запускает команды, когда уровни загрузки системы позволяют это делать; в других, когда средняя загрузка системы, читаемая из /proc/loadavg, опускается ниже 0.5, или величины, заданной при вызове atrun.
At позволяет использовать некоторые умеренно сложные спецификации времени HHMM (ЧасыМинуты) или HH:MM (Часы: Минуты) для запуска задания в определённое время дня (если это время уже прошло, то устанавливается следующий день). Можно также указать midnight
(полночь), noon
(полдень), или teatime
(4 часа после полудня) (4pm), а также задать суффикс времени для AM (до полудня) или PM (после полудня) для запуска утром или вечером. Также можно указать дату запуска задания в форме имя_месяца день год
(необязательно), или задать дату в форме MMDDYY
, MM/DD/YY
или DD.MM.YY
. Заданная вами дата должна содержать параметр времени дня. Можно задать время как now + count time-units (текущее время + счётчик временных единиц), где временные единицы могут быть минутами, часами, днями или неделями. Можно указать at запустить задание сегодня, используя суффикс времени today
, а для запуска задания завтра — суффикс tomorrow
.
Суперпользователь может использовать эти команды в любом случае. Для других пользователей право на использование at определяется файлами /etc/at.allow
и /etc/at.deny
.
Если файл /etc/at.allow
существует, то только пользователи, чьи имена указаны в этом файле, могут использовать at.
Если /etc/at.allow
не существует, то проверяется /etc/at.deny
; каждый пользователь, чьё имя не указано в этом файле, может использовать at.
Если не существует ни одного из вышеперечисленных файлов, то только суперпользователю разрешается использовать at.
В случае пустого /etc/at.deny
считается, что каждому пользователю позволяется использовать эти команды; это установлено по умолчанию.
Параметры запуска
[править | править код]- -V
- Выводит номер версии в стандартный поток stderr.
- -q очередь
- Использовать заданную очередь. Структура очереди содержит одну букву; правильные структуры очереди ранжируются от a до z и от A до Z. Очередь c — это очередь по умолчанию для at, и очередь E — это очередь по умолчанию для batch. Очереди со старшими буквами запускаются вперёд очередей с младшими буквами. Если задание ставится в очередь, начинающуюся с заглавной буквы, то задание трактуется так, как если бы оно было установлено для batch в это время. Если для atq задаётся определённая очередь, то atq будет показывать только задания в этой очереди.
- -m
- При завершении задания посылает e-mail пользователю (даже если задача ничего не вывела).
- -f файл
- Читает задание из файла, отличного от стандартного ввода.
- -l
- Сокращение для команды atq.
- -d
- Сокращение для команды atrm.
- -b
- Сокращение для команды batch.
- -v
- Указывает atq показывать завершённые задания, но пока не удалять задания в очереди; в других случаях — показывать время запуска задания.
- -c
- Выводит задания, перечисленные в командной строке, на стандартный вывод.
Примеры использования
[править | править код]Хорошим примером для иллюстрирования действий at послужит следующая команда:
echo "notify-send 'пора завтракать'" | at 06:00
Её результатом будет вызов уведомителя GNOME с текстом «пора завтракать» в шесть часов утра.
Более сложная конструкция для запуска приложения, требующего графический режим:
user@userubC2D64:~$ at 12:29
warning: commands will be executed using /bin/sh
at> export DISPLAY=:0.0 #указываем дисплей
at> steam #команда с параметрами
at> <EOT> #Ctrl+D
job 16 at Thu Mar 15 12:29:00 2012
Её результатом будет вызов приложения Steam в указанное время.
См. также
[править | править код]Ссылки
[править | править код]at(1)
— страница справки man по пользовательским командам FreeBSD (англ.)- http://www.ibm.com/developerworks/ru/library/l-job-scheduling/index.html Планирование задач с помощью cron и at