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

Установка At Command

Когда дело доходит до планирования задач, существует ряд инструментов, таких как cron и anacron, которые позволяют регулярно выполнять задачи на основе заданного расписания. Другие инструменты, такие как incron, позволяют пользователю задавать задачи, которые могут выполняться в ответ на определенные события. В случае с incron это происходит в ответ на изменения в файловой системе. На этот раз мы рассмотрим команду at, которую можно использовать для постановки в очередь задач, которые будут выполняться в заданное время.
Установка на большинстве систем не представляет сложности. включены в репозитории по умолчанию для большинства дистрибутивов Linux. Для Red Hat и CentOS его можно установить с помощью следующей команды:

sudo yum install at

Для Debian, Ubuntu и связанных с ними дистрибутивов используются следующие команды:

sudo apt-get update

sudo apt-get install at

После установки at вам необходимо убедиться, что демон at запущен. Для всех дистрибутивов Linux можно использовать следующую команду:

sudo service atd start

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

sudo chkconfig atd on

Как начать планировать задачи

После этого мы можем начать планировать задачи с помощью at. Самый простой способ сделать это — ввести «в», а затем указать, когда вы хотите, чтобы задачи выполнялись. Например:

at 9:00 am tomorrow

Это даст вам подсказку, например:

at>

В этом приглашении вы можете ввести команды, которые вы бы использовали, как если бы вы были в своей обычной командной строке. Каждый раз, когда вы нажимаете клавишу «Ввод», вам будет предоставлена ​​новая строка, в которой вы можете ввести другую команду. После того, как вы закончите вводить нужные команды, вы можете нажать «Ctrl-d», чтобы выйти в. Затем задание будет записано и запланировано для вас. Обратите внимание, что задания будут выполняться от имени пользователя, под которым вы вошли в систему, как и при их планировании, поэтому, если вы хотите запускать задания от имени root, вам нужно будет использовать sudo для указания или войти в систему как root.

С точки зрения планирования, at довольно умен и может расшифровать большинство способов указания даты и понимает такие термины, как завтра, на следующей неделе, полдень, полночь, дни недели и месяцы года, что означает, что вы можете указать вещи в нескольких форматах. Он даже может принять «сейчас» с возможностью изменить его таким образом, что «сейчас + 30 минут» задает выполнение задачи через полчаса. Используемые модификаторы могут быть минутами, часами, днями, неделями, месяцами или годами. Указание времени означает только то, что задача будет выполнена в следующий раз, когда придет время, и время может быть указано в 12- или 24-часовом формате.

Проверка запланированных заданий

После запуска задания результат будет отправлен по электронной почте на ваш локальный адрес электронной почты пользователя на сервере. Если это не тот метод, который вы хотели бы использовать для вывода, вы всегда можете перенаправить вывод команды в файл для последующей проверки. Вы не увидите запуск команды, если вы вошли в систему, так как at будет выполнять задание в фоновом режиме почти так же, как это делает cronjob.

После того, как вы запланировали некоторые задания, вы можете проверить, что вы запланировали, и для этого вы можете использовать команду «atq»:

atq

Обратите внимание, что если вы не являетесь пользователем root, atq будет отображать только ваши собственные запланированные задания. Он также предоставит только номер задания и время, на которое оно запланировано. Для получения более подробной информации о конкретном задании в списке вы можете использовать at с флагом -c для отображения содержимого:

at -c 2

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

Если вы решите удалить задание, которое вы запланировали с помощью at, вы можете использовать команду «atrm», чтобы удалить его из очереди:

atrm 2

Эта команда удаляет задание номер 2 из очереди.

Это в значительной степени охватывает основы того, как вы можете использовать at в своей системе для планирования и управления одноразовыми задачами. Не стесняйтесь экспериментировать с ним, и, как обычно, справочные страницы содержат дополнительную информацию для более продвинутого использования команды at.

Никогда не пропустите ни одного поста. Подпишитесь на еженедельную рассылку 100TB и следите за нами в Facebook и Twitter.

Первоначально опубликовано на blog.100tb.com.