Как запланировать одноразовые задания в Linux с помощью at

Тайм-менеджмент — сложное искусство. К счастью, с помощью технологий вы можете автоматизировать и делегировать рутинные задачи своему компьютеру. В отличие от людей, ПК очень хорошо выполняют повторяющиеся задачи в точно установленное время.

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

Установка в Linux

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

В системах на основе Debian, таких как Ubuntu, MX Linux и Pop!_OS, вы можете установить, выполнив:

sudo apt <span class="hljs-keyword">install</span> <span class="hljs-keyword">at</span>

Если вы используете дистрибутив на основе RPM, например RHEL, Fedora или Rocky Linux, используйте DNF для установки пакета:

sudo dnf <span class="hljs-keyword">install</span> <span class="hljs-keyword">at</span>

В дистрибутивах Linux на основе Arch, таких как Manjaro, запустите:

sudo pacman -S at

Запуск службы планировщика заданий atd

Прежде чем использовать команду at, убедитесь, что запущен демон планирования atd. Это то, что команда at использует для выполнения запланированных заданий.

sudo systemctl status atd

Если служба atd не запущена, вы можете запустить ее, используя:

sudo systemctl <span class="hljs-keyword">start</span> atd

Планирование задач в Linux с помощью at

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

<span class="hljs-built_in">command</span> | at time_stamp

Например, мы можем запланировать задачу для вывода списка содержимого вашего текущего каталога с помощью команды ls и записи вывода в файл через минуту.

Сначала перейдите в домашнюю папку пользователя с помощью команды cd:

<span class="hljs-built_in">cd</span> ~

Затем выполните следующую команду, чтобы запланировать задачу:

ls > list_items.txt | at now + 1 minutes

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

Если вы хотите выполнить команду завтра в полдень, запустите:

ls > list_items.txt | at noon tomorrow

Чтобы указать более точное время и дату, используйте формат даты MMDDHHMM YYYY. Например, чтобы выполнить предыдущую команду в 13:00. 25 декабря 2023 года вы можете запустить команду:

ls > list_items.txt | at 12251300 2023

Команда at имеет гораздо более продвинутые функции, которые позволяют вам запускать определенные команды в точное время. Взгляните на его справочные страницы для получения дополнительных параметров команды:

man at

Сценарии планирования в Linux с использованием at

Помимо запуска отдельных команд, вы также можете использовать команду at для планирования выполнения сценариев в указанное время.

Предположим, у вас есть скрипт с именем disk_usage.sh, расположенный в вашей домашней папке. Сценарий просто выводит использование жесткого диска в текстовый файл. Вот сценарий:

<span class="hljs-meta">#!/bin/bash</span>
<span class="hljs-selector-tag">df</span> <span class="hljs-selector-tag">-h</span> > <span class="hljs-selector-tag">disk_usage</span><span class="hljs-selector-class">.txt</span>

Чтобы выполнить этот скрипт через тридцать минут, вы можете просто запустить следующую команду:

at now + 30 minutes -f ~/disk_usage.sh

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

<span class="hljs-selector-tag">sudo</span> <span class="hljs-selector-tag">chmod</span> +<span class="hljs-selector-tag">x</span> <span class="hljs-selector-tag">disk_usage</span><span class="hljs-selector-class">.sh</span>

Управление ожидающими выполнения задач в Linux

Вы можете просмотреть отложенные задачи, используя следующую команду:

atq

Чтобы удалить отложенную задачу, используйте следующий формат команды:

atrm task_number

Например, чтобы удалить задачу номер 12, используйте:

atrm 12

Автоматизируйте повторяющиеся задачи в Linux с помощью at

Команда at — это мощный и универсальный инструмент для выполнения одноразовых заданий на вашем ПК с Linux. Помимо at, вы можете использовать crontab для автоматизации всех видов задач, от простых до сложных.

Поделитесь с друзьями

Добавить комментарий

1 Комментарий
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
Михаил

Насколько знаю сайт Украинский. Респект. Спасибо. линуксоиды за мир.

1
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x