Как называются автоматизированные задачи в linux

Обновлено: 03.07.2024

В этой статье мы расскажем , как использовать 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 чтобы выйти из подсказки и сохранить задание:

Команда отобразит номер задания, время и дату выполнения.

Чтобы читать команды из файла вместо стандартного ввода, вызовите команду с параметром -f путь к файлу. Например, чтобы создать задание, которое будет запускать скрипт /home/linuxize/script.sh :

По умолчанию, если команда производит вывод, at отправит электронное письмо с выводом пользователю после завершения задания. Invoke at с -M опцией для подавления уведомлений по электронной почте:

batch команда

batch или его псевдоним at -b планирует задания и выполняет их в пакетной очереди, если позволяет уровень загрузки системы. По умолчанию задания выполняются, когда средняя загрузка системы ниже 1,5. Значение нагрузки можно указать при вызове демона atd . Если средняя загрузка системы выше указанной, задания будут ждать в очереди.

Чтобы создать batch задание, передайте команды, которые хотите выполнить:

Указание времени выполнения

Утилита at поддерживает широкий диапазон временных характеристик. Вы можете указать время, дату и приращение от текущего времени:

Время, дату и приращение можно комбинировать, вот несколько примеров:

  • Запланируйте работу на ближайшее воскресенье на время на десять минут позже текущего:
  • Запланируйте запуск задания на 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 в вашем терминале.

Favorite

Добавить в избранное

Главное меню » Linux » Планирование заданий в Linux с помощью команды at

Как запланировать публикацию ваших постов в WordPress (шаг за шагом)

К оманда at в Linux может использоваться для планирования заданий, которые не выполняются по регулярному расписанию.

Это можно сравнить с концепцией Crontab в Linux, которая является лучшим способом автоматизации повторяющихся задач.

В этой статье мы покажем, как вы можете использовать команду «at» для планирования выполнения задач и команд на определенное время в будущем.

Установка по команде в Linux

Прежде чем начать, вы должны проверить, установлено ли «at» в вашей системе. Он не установлен по умолчанию во всех операционных системах.

Вы можете проверить это, набрав:

Если программное обеспечение уже установлено, вернется номер версии. Если нет, его можно установить в системах на основе Debian, набрав:

Если вы используете другой дистрибутив Linux, то вам, возможно, придется изменить эту команду, чтобы отразить менеджер пакетов, используемый вашим дистрибутивом.

Начало

Утилита at на самом деле представляет собой серию команд, которые работают вместе для планирования заданий. Как мы уже упоминали, at предпочтительнее для ситуаций, когда ваша задача больше «одноразовая», чем повторяющееся событие.

Мы составили таблицу с некоторыми основными командами, связанными с at.

команда функция
at позволяет пользователю планировать задачу
atq выводит список заданий в очередь для вошедшего в систему пользователя или всех пользователей, если они запускаются как sudo
atrm удаляет задания по указанному номеру задания
batch указывает системе запускать задание только в указанное время, если загрузка системы находится на определенном уровне (средняя загрузка <1,5)

Использование команды at в Linux для планирования заданий

Использование at имеет свой уникальный формат. Когда вы хотите запланировать работу, вы наберете в свой терминал:

Время является обязательным, но дата является необязательной. Если ничего не введено, будет сделано предположение на основе текущей даты и системного времени.

Когда вы нажмете Enter, вам будет предложено ввести команды. Вы можете ввести столько, сколько хотите. Введите Ctrl + D, чтобы сохранить и выйти.

Позвольте нам показать это вам с примерами.

Пример 1. Введите время/дату, используя естественный язык

У вас есть много разных вариантов ввода времени. В отличие от crontab с его довольно сложной системой, основанной на звездочках, «at» распознает «человеческий» ввод более эффективно.

Есть много человеческих подобных выражений, которые могут быть поняты с помощью программного обеспечения. Многие из них зависят от региона. Он может распознавать такие распространенные выражения, как «полночь» или «полдень». Он также может различать AM и PM. Кроме того, он может распознавать различные форматы для дней и дат, включая сокращения.

Он также может использовать выражение «сейчас». Вы можете просто ввести команду, как показано ниже, и она будет запущена через 5 минут.

Итак, прошло около минуты, верно? Проверьте каталог для нового файла.

Пример 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.

Пример 6. Запуск задания, когда загрузка процессора падает ниже порогового значения.

Пакетные задания будут выполняться, когда средняя загрузка ЦП по умолчанию опустится ниже 1,5.

Метод ввода пакетных заданий идентичен «at», за исключением того, что ему не нужно указывать время.

Если вы хотите изменить порог загрузки, вы можете сделать это с помощью следующей команды:

Вывод

Спасибо за прочтение. Мы надеемся, что ваше понимание команды улучшилось. Если у вас есть какие-либо вопросы или вы хотите поделиться тем, как вы используете эту команду, сообщите нам! Оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

В этой статье мы рассмотрим автоматизацию ежедневных рутинных действий и создадим рабочее решение для резервного копирования. Во-первых, «сценарий bash» — это сценарий, состоящий из обычных команд bash и некоторых операторов, которые нечасто используются в командной строке (условия if-then-else, циклы while и т.д.), а cron — это демон (фоновая служба), который выполняет команды, перечисленные в пользовательском файле crontab (поэтому если вам нужно запустить задачу, требующую прав суперпользователя, то редактировать следует файл crontab, принадлежащий пользователю root). Мы будем использовать простой сценарий (всего в одну строчку), который объединяет в один текстовый файл все файлы .java из одного каталога. Вы можете изменить сценарий, например, для объединения файлов журналов. Я объясню, как он работает, а затем расскажу, как настроить cron, чтобы сценарий запускался каждые 6 часов. Я предпочитаю создавать сценарии в редакторе nano, но если вам удобнее пользоваться текстовым редактором с графическим интерфейсом, просто замените «nano» на «gedit» (без кавычек). Введите команду:

В терминале откроется редактор nano с совершенно пустым файлом. Введите следующие строки (скоро я их поясню):

Чтобы сохранить файл, нажмите Ctrl + X и Enter . Чтобы сделать его исполняемым, выполните следующую команду:

или создав символьную ссылку в /usr/bin (тогда сценарий можно будет запускать, как любую другую программу):

Замените <путь к сценарию> на полный (как того требуют символьные ссылки) путь к свежесозданному сценарию.

Основа сценария — команда find, которая находит в каталоге eclipse все файлы, оканчивающиеся на .java. Затем вывод команды find передаётся циклу while, который в свою очередь построчно считывает найденные файлы и последовательно выводит строки, до тех пор, пока они не закончатся.

Как я уже говорил, можно изменить путь в сценарии, например, на /var/log/:

Чтобы теперь добавить сценарий в файл crontab, я предложил бы создать символьную ссылку, чтобы команда была короче. Но это не обязательно. Запустите редактор файла crontab:

Откроется файл crontab текущего пользователя. Если вы хотите редактировать crontab пользователя root (для сценариев резервного копирования и т.д.), запустите:

Важно помнить, что crontab использует определённый формат записей: <минута> <час> <день> <месяц> <день недели> <команда>. Каждой позиции должно соответствовать какое-то выражение, в роли которого может выступать числовое значение, символ подстановки или их комбинация. Например:

Как использовать задачи cron для планирования и автоматизации задач в Linux | Linux россия

640?wx_fmt=jpeg

Задачи Cron используются для «автоматизированных задач», которые помогают упростить выполнение повторяющихся и иногда утомительных задач.

Иногда вам может потребоваться выполнять задачи на регулярной основе или через заранее определенные промежутки времени. Эти задачи включают резервное копирование базы данных, обновление системы, выполнение периодических перезагрузок и т. Д. Эти задачи называются «задачами cron». Задачи Cron используются для «автоматизированных задач», которые помогают упростить выполнение повторяющихся и иногда утомительных задач. Cron - это процесс-демон, который позволяет вам планировать эти задачи, а затем выполнять их через определенные промежутки времени. В этом руководстве вы узнаете, как использовать cron для планирования задач.

crontab, или «таблица cron», представляет собой простой текстовый файл, содержащий правила и команды, определяющие временной интервал для выполнения задачи. Есть два типа файлов crontab:

1) Общесистемный файл crontab

Обычно они используются службами Linux и критически важными приложениями, которым требуются привилегии root. Системный файл crontab находится по адресу /etc/crontab , И может быть доступен и изменен только пользователем root. Обычно используется для настройки общесистемных демонов. crontab Файл выглядит примерно так:

640?wx_fmt=png

2) Файл crontab, созданный пользователем

Пользователи Linux также могут crontab Создавайте собственные задачи cron с помощью команд. Созданные задачи cron будут запускаться от имени пользователя, который их создал.

Все задачи cron хранятся в /var/spool/cron (Для дистрибутивов RHEL и CentOS) и /var/spool/cron/crontabs (Для дистрибутивов Debian и Ubuntu) задачи cron перечислены с именем пользователя, создавшего файл.

Демон cron выполняет тихую проверку в фоновом режиме /etc/crontab Документы и /var/spool/cron И /etc/cron.d*/ оглавление.

crontab Команда используется для редактирования файлов cron. Давайте посмотрим на структуру файла crontab.

Анализ файла crontab

Прежде чем продолжить, мы сначала рассмотрим формат файла crontab. Базовый синтаксис файла crontab состоит из 5 столбцов, отмеченных звездочками, за которыми следует команда, которую нужно выполнить.

Читайте также: