Как планировать команды в Linux с помощью утилиты «at»

Как планировать команды в Linux с помощью утилиты «at»
⏱️ 1 min read

В первый раз, когда я управлял загруженным сервером, мне пришлось ждать подходящего момента, чтобы перезагрузить его, когда люди им не пользовались. Я заметил, что это произошло около 3 часов ночи. Затем я подумал про себя: «Ну, это неудобно, мне приходится просыпаться в неразумное время только для того, чтобы перезагрузить свой сервер». Через пять секунд я понял, что это была глупая мысль. «Это Linux, я уверен, автоматизировать такую ​​простую задачу несложно». Так что, at был открыт.

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

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

Как установить «at» в различных дистрибутивах Linux

В Debian или дистрибутивах на основе Debian запустите:

sudo apt install at

linux-при-установке-на-debian

В Fedora запустите:

sudo dnf install at

Чтобы установить «at» в Arch Linux:

sudo pacman -S at

И на openSUSE:

sudo zypper install at

Включить автоматический запуск демона «at» и запустить службу

Некоторые дистрибутивы автоматически разрешают запуск демона «at» при загрузке. Другие не будут. Проверить с:

systemctl is-enabled atd.service

linux-at-is-enabled-atd

Если он говорит «отключено», включите его с помощью:

sudo systemctl enable atd.service

И запускаем демон:

sudo systemctl start atd.service

Как указать дату и время для планирования команд «at»

Вы можете использовать любую из следующих форм.

1. Запустите команду через указанное количество минут, часов, дней или недель.

at now + 10 minutes
at now + 10 hours
at now + 10 days
at now + 10 weeks

linux-сейчас-плюс-6 дней

2. Запуск в точное время:

at 23:10

Если уже 12:00, и вы бежите:

at 11:00

Тогда команда запустится завтра, в указанное время.

3. Запустить в точное время и дату:

at 12:00 December 31

Другие альтернативные способы указания времени и даты можно найти в онлайн-руководство «в».

Как использовать команду «at»

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

Linux-при-подсказке

Здесь вы просто вводите команды, которые хотите запустить. Они будут выполняться под вашим текущим именем пользователя. Введите команду, которую вы хотите запустить в указанное время, и нажмите Enter. Если вы хотите запустить следующую команду, повторите ту же процедуру. Когда закончите, нажмите Ctrl + Д. <EOT> будет отображаться, когда вы нажимаете эти клавиши, а затем время, когда команда (команды) будет выполнена.

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

sudo -i

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

После того, как вы запланируете свою команду, введите:

exit

Это приведет к выходу из учетной записи пользователя root.

linux-в-расписании-poweroff

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

Если компьютер выключается до того, как запланированное задание сможет запуститься, оно просто запустится при следующей загрузке (если его время истекло). Например, если вы запланировали задание на 15:00, завершите работу в 14:00 и включите питание в 16:00, задание будет запущено в 16:00.

Просмотр и/или удаление запланированных заданий

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

atq

или же

at -l

linux-в-просмотре-очереди

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

at -c 22

linux-at-cat-job

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

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

atrm 22

Расписание «в» для запуска графических приложений

Сначала узнайте текущее значение отображаемой переменной:

echo $DISPLAY

Обычно это будет :0.

Расписание at бежать. В подсказке «at» установите DISPLAY переменная к предыдущему значению (export DISPLAY=:0) и запустите желаемое графическое приложение.

Linux-в-графическом-приложении

Команды, использованные на предыдущем снимке экрана, приведут к следующему.

linux-at-libreoffice-scheduled-open

Теперь графическое приложение будет «на виду» и будет напоминать о важной работе лучше, чем телефонный будильник.

Вывод

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

Join our Newsletter and receive offers and updates! ✅

0 0 голоса
Article Rating
Аватар Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Подписаться
Уведомить о
guest
0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x