- Команда at в Linux
- Установка at
- Как использовать команду at
- batch команда
- Указание времени выполнения
- Указание очереди
- Список незавершенных вакансий
- Удаление незавершенных заданий
- Ограничение пользователей
- Выводы
- Планирование заданий в Linux с помощью команды at
- Установка по команде в Linux
- Начало
- Использование команды at в Linux для планирования заданий
- Пример 1. Введите время/дату, используя естественный язык
- Пример 2. Использование указанного времени/даты
- Пример 3. Просмотр всех заданий в очереди с помощью atq
- Пример 4. Удаление запланированного задания с помощью atrm
- Пример 5: использование файла для команды at
- Пример 6. Запуск задания, когда загрузка процессора падает ниже порогового значения.
- Планирование задач при помощи программы at в Linux
- Использование программы at
- Просмотр всех запланированных задач при помощи atq
- Удаление запланированной задачи при помощи atrm
- Ограничение круга пользователей программы at
Команда at в Linux
at — это утилита командной строки, которая позволяет вам планировать выполнение команд в определенное время. Задания, созданные с помощью at , выполняются только один раз.
В этой статье мы расскажем , как использовать at и его компаньоны утилитами batch , atq , atrm просматривать, удалять и создавать новые рабочие места , которые должны выполняться в более позднее время.
Установка at
В зависимости от дистрибутива at может присутствовать или отсутствовать в вашей системе Linux.
Если at не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
- Установить at Ubuntu и Debian
- Установить at CentOS и Fedora
После установки программы убедитесь, что atd , демон планирования запущен и настроен на запуск при загрузке:
Как использовать команду at
Упрощенный синтаксис команды at выглядит следующим образом:
Команда at принимает дату и время ( runtime ), когда вы хотите выполнить задание, как параметр командной строки, и команду, которая должна быть выполнена из стандартного ввода.
Создадим задание, которое будет выполнено в 9:00:
Как только вы нажмете Enter , вам будет представлена командная строка at которая чаще всего начинается с at> . Вы также увидите предупреждение о том, в какой оболочке будет выполняться команда:
Введите одну или несколько команд, которые хотите выполнить:
Когда вы закончите вводить команды, нажмите Ctrl-D чтобы выйти из подсказки и сохранить задание:
Команда отобразит номер задания, время и дату выполнения.
Есть и другие способы , чтобы пройти команду , которую вы хотите запустить, помимо ввода команды в at строке. Один из способов — использовать echo и направить команду по at :
Другой вариант — использовать здесь документ :
Чтобы читать команды из файла вместо стандартного ввода, вызовите команду с параметром -f путь к файлу. Например, чтобы создать задание, которое будет запускать скрипт /home/linuxize/script.sh :
По умолчанию, если команда производит вывод, at отправит электронное письмо с выводом пользователю после завершения задания. Invoke at с -M опцией для подавления уведомлений по электронной почте:
Используйте -m чтобы отправить электронное письмо, даже если нет вывода:
batch команда
batch или его псевдоним at -b планирует задания и выполняет их в пакетной очереди, если позволяет уровень загрузки системы. По умолчанию задания выполняются, когда средняя загрузка системы ниже 1,5. Значение нагрузки можно указать при вызове демона atd . Если средняя загрузка системы выше указанной, задания будут ждать в очереди.
Чтобы создать batch задание, передайте команды, которые хотите выполнить:
Указание времени выполнения
Утилита at поддерживает широкий диапазон временных характеристик. Вы можете указать время, дату и приращение от текущего времени:
- Время — чтобы указать время, используйте форму HH:MM или HHMM . Чтобы указать 12-часовой формат времени, используйте am или pm после времени. Вы также можете использовать такие строки, как now , midnight , noon или teatime (16:00). По истечении указанного времени задание будет выполнено на следующий день.
- Дата — команда позволяет запланировать выполнение задания на заданную дату. Дату можно указать, используя название месяца, за которым следует день и (необязательно) год. Вы можете использовать строки, например, today , tomorrow или будний день. Дата также может быть указана в MMDD[CC]YY , MM/DD/[CC]YY , DD.MM.[CC]YY или [CC]YY-MM-DD .
- Increment — at также принимает приращения в формате now + count time-unit , где count — это число, а time-unit может быть одной из следующих строк: minutes , hours , days или weeks .
Время, дату и приращение можно комбинировать, вот несколько примеров:
- Запланируйте работу на ближайшее воскресенье на время на десять минут позже текущего:
- Запланируйте запуск задания на 13:00 через два дня:
- Запланируйте запуск задания на 12:30 21 октября 2020 г .:
- Запланируйте запуск задания через час:
Вы также можете указать время и дату в [[CC]YY]MMDDhhmm[.ss] используя параметр -t . Вот пример:
Указание очереди
По умолчанию задания, созданные с помощью at , планируются в очереди с именем a а задания, созданные с помощью batch , планируются в очереди b .
Запросы могут иметь имена от a до z и от A до Z Очереди с меньшими буквами работают с меньшей аккуратностью, что означает, что они имеют приоритет над очереди с более высокими буквами.
Вы можете указать очередь с помощью опции -q . Например, чтобы установить задание в L очередь, вы должны запустить:
Список незавершенных вакансий
Чтобы вывести список ожидающих заданий пользователя, выполните atq или at -l :
В выводе будут перечислены все задания, по одному в каждой строке. Каждая строка включает номер задания, дату, время, букву очереди и имя пользователя.
Когда atq вызывается от имени администратора, он перечисляет ожидающие задания всех пользователей.
Удаление незавершенных заданий
Чтобы удалить отложенное задание, atrm команду atrm или at -r после которой atrm номер задания. Например, чтобы удалить задание с номером девять, вы должны запустить:
Ограничение пользователей
/etc/at.deny и /etc/at.allow позволяют контролировать, какие пользователи могут создавать задания с помощью команды at или batch . Файлы состоят из списка имен пользователей, по одному имени пользователя в строке.
По умолчанию существует только файл /etc/at.deny и он пуст, что означает, что все пользователи могут использовать команду at . Если вы хотите отказать в разрешении определенному пользователю, добавьте имя пользователя в этот файл.
Если файл /etc/at.allow существует, только пользователи, перечисленные в этом файле, могут использовать команду at .
Если ни один из файлов не существует, только пользователи с правами администратора могут использовать команду at .
Выводы
Утилита at считывает команды со стандартного ввода и выполняет их позже. В отличие от crontab , задания, созданные с помощью at , выполняются только один раз.
Для получения дополнительной информации обо всех доступных параметрах команды at введите man at в вашем терминале.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Источник
Планирование заданий в Linux с помощью команды at
Главное меню » Linux » Планирование заданий в Linux с помощью команды at
Это можно сравнить с концепцией Crontab в Linux, которая является лучшим способом автоматизации повторяющихся задач.
В этой статье мы покажем, как вы можете использовать команду «at» для планирования выполнения задач и команд на определенное время в будущем.
Установка по команде в Linux
Прежде чем начать, вы должны проверить, установлено ли «at» в вашей системе. Он не установлен по умолчанию во всех операционных системах.
Вы можете проверить это, набрав:
Если программное обеспечение уже установлено, вернется номер версии. Если нет, его можно установить в системах на основе Debian, набрав:
Если вы используете другой дистрибутив Linux, то вам, возможно, придется изменить эту команду, чтобы отразить менеджер пакетов, используемый вашим дистрибутивом.
Начало
Утилита at на самом деле представляет собой серию команд, которые работают вместе для планирования заданий. Как мы уже упоминали, at предпочтительнее для ситуаций, когда ваша задача больше «одноразовая», чем повторяющееся событие.
Мы составили таблицу с некоторыми основными командами, связанными с at.
команда | функция |
---|---|
at | позволяет пользователю планировать задачу |
atq | выводит список заданий в очередь для вошедшего в систему пользователя или всех пользователей, если они запускаются как sudo |
atrm | удаляет задания по указанному номеру задания |
batch | указывает системе запускать задание только в указанное время, если загрузка системы находится на определенном уровне (средняя загрузка Использование команды at в Linux для планирования заданийИспользование at имеет свой уникальный формат. Когда вы хотите запланировать работу, вы наберете в свой терминал: Время является обязательным, но дата является необязательной. Если ничего не введено, будет сделано предположение на основе текущей даты и системного времени. Когда вы нажмете Enter, вам будет предложено ввести команды. Вы можете ввести столько, сколько хотите. Введите Ctrl + D, чтобы сохранить и выйти. Позвольте нам показать это вам с примерами. Пример 1. Введите время/дату, используя естественный языкУ вас есть много разных вариантов ввода времени. В отличие от crontab с его довольно сложной системой, основанной на звездочках, «at» распознает «человеческий» ввод более эффективно. Есть много человеческих подобных выражений, которые могут быть поняты с помощью программного обеспечения. Многие из них зависят от региона. Он может распознавать такие распространенные выражения, как «полночь» или «полдень». Он также может различать AM и PM. Кроме того, он может распознавать различные форматы для дней и дат, включая сокращения. Он также может использовать выражение «сейчас». Вы можете просто ввести команду, как показано ниже, и она будет запущена через 5 минут. Скорее всего, вы можете игнорировать предупреждение о bin /sh . Это может вызвать головную боль, если вы используете другую оболочку . Подавляющее большинство дистрибутивов Linux поставляются с bash, поскольку системная оболочка обозначается как «sh» … Это долгая история. Итак, прошло около минуты, верно? Проверьте каталог для нового файла. У вас должен быть файл с именем ‘message.txt’, содержащий наш текст. Выглядит хорошо, но правильно ли он запечатлел наше сообщение? Давайте посмотрим содержимое файла : Пример 2. Использование указанного времени/датыДля своей первой работы вы использовали «относительное» время «now + [time]». Это очень простой способ составить график работы, но вам может потребоваться конкретнее. На этот раз давайте наметим 2 задания в разное время. Вы можете использовать файл message.txt (созданный в предыдущем примере) для демонстрации. Каждое задание заменит содержимое файла. Вы можете проверить текущее время в вашей системе Linux с помощью команды date. Настройте первую работу на определенное время (через 5 минут): Настройте второе задание на определенное время (через 10 минут): Проверьте в 3:45: Проверьте в 3:50: Пример 3. Просмотр всех заданий в очереди с помощью atqВ любое время вы можете проверить запланированные задания с помощью команды atq. В нем будут перечислены все текущие запланированные задания для пользователя, вошедшего в систему. Чтобы просмотреть все задания в системе, вам может потребоваться использование повышенных привилегий. Каждое задание идентифицируется по идентификатору задания, назначенному времени и связанному пользователю. Вы также можете просмотреть содержимое запланированного задания с опцией -c: Пример 4. Удаление запланированного задания с помощью atrmЕсли вы решите отменить задание до его выполнения, это можно сделать, набрав команду с соответствующим идентификатором задания (который можно получить с помощью команды atq). Как видите, задание 11 было удалено из очереди. Пример 5: использование файла для команды atВозможно, у вас есть набор сценариев, которые вы хотите выполнять нерегулярно, и cron не подходит. Вы можете ввести несколько заданий без использования стандартного ввода. Давайте представим сценарий, в котором отдел кадров запрашивает документацию для компьютерной деятельности сотрудника, который, по их мнению, нарушает политику работы. Возможно, вы захотите, чтобы определенные журналы активности или другая историческая информация создавали для вас отчет в указанное время. Вы можете сэкономить время, перечислив необходимые сценарии в текстовом файле, выполнив их с помощью at. Вы поняли идею. Итак, теперь вы можете добавить -f к команде ‘at’ и включить имя файла после: Пример 6. Запуск задания, когда загрузка процессора падает ниже порогового значения.Пакетные задания будут выполняться, когда средняя загрузка ЦП по умолчанию опустится ниже 1,5. Метод ввода пакетных заданий идентичен «at», за исключением того, что ему не нужно указывать время. Если вы хотите изменить порог загрузки, вы можете сделать это с помощью следующей команды: Где n – это порог загрузки, который вы хотите выбрать. Страница man рекомендует вам изменить его на значение выше n-1, где n – это количество процессоров в вашей системе . Вывод Спасибо за прочтение. Мы надеемся, что ваше понимание команды улучшилось. Если у вас есть какие-либо вопросы или вы хотите поделиться тем, как вы используете эту команду, сообщите нам! Оставьте комментарий ниже. Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter. Источник Планирование задач при помощи программы at в LinuxВ прошлой статье я уже рассказывал о программах cron и crontab , которые используются для планирования периодически повторяющихся действий в системе GNU/Linux. Но в некоторых случаях вам может потребоваться однократно выполнить задачу в заданное время, как раз для этой цели лучше всего подходит программа at , которая также позволяет выполнять команды во время снижения загрузки системы. Еще одной причиной использования at может быть ваше желание выполнить команду, занимающую много времени, и отключиться от сервера; программа at подойдет и для этой задачи, но я бы также порекомендовал ознакомиться со статьями о запуске команд в фоновом режиме и использовании утилиты screen . Таким образом, главной задачей программы at является «планирование однократного исполнения задачи». В этом плане она похожа на программу cron , которая обычно используется для планирования периодически повторяющихся задач; давайте рассмотрим основные примеры использования этой программы. Программа at является частью набора, состоящего из четырех программ: at , batch , atq и atrm :
Использование программы atПосле запуска at предлагает вам ввести последовательность команд для выполнения. Чтобы закончить ввод команд, следует использовать комбинацию клавиш CTRL-D. Описание основных параметров командной строки at приведено ниже: Значение этих параметров:
Во время проведения тестов точное время было следующим: В том случае, если задать только время, задача будет запланирована на следующий момент достижения этого времени, например, я задал время 20.00, а исполнение задачи было запланировано на следующий день в это время: При этом, если задать время, которое еще не наступило сегодня, исполнение задачи будет запланировано на этот же день: А это еще один пример с использованием сочетания клавиш CTRL+D для завершения ввода команд: Просмотр всех запланированных задач при помощи atqВы можете использовать программу atq в качестве альтернативы команде at -l для просмотра списка запланированных или выполняющихся в данный момент задач, а единственным аргументом этой программы является -q для указания определенной очереди. На мой взгляд, вывод программы не особенно полезен, так как вы не можете посмотреть, какая команда выполняется в рамках задачи с идентификатором 3 или любой другой задачи. Для того, чтобы увидеть, что будет выполняться в рамках задачи, вы можете использовать следующую команду: Она выведет длинный список переменных окружения для выполнения команды и саму команду: #!/bin/sh Этот вывод позволяет гораздо лучше понять предназначение задачи. Удаление запланированной задачи при помощи atrmМы научились просматривать список запланированных задач и при желании их содержимое, теперь настало время рассмотреть способ их удаления из очереди при помощи программы atrm или команды at -d для удаления определенной задачи. Таким образом, для удаления задачи с идентификатором 3, вам необходимо просто ввести команду: Данная команда ничего не выводит в консоль, но после ее выполнения вы можете убедиться в удалении задачи при помощи команды atq . Ограничение круга пользователей программы atФайлы /etc/at.allow и /etc/at.deny устанавливают пользователей, которые могут планировать задачи для последующего исполнения при помощи программ at и batch . В качестве формата этих файлов используется простой список имен пользователей по одному в каждой строке. Использование пробелов в этих файлах не допускается. Пользователь root может использовать программы at и batch при любых условиях. Источник |