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

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

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

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

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

Как установить «в» на разные дистрибутивы Linux

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

sudo apt install at

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

В 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" - Linux

Если адрес отключен, вы можете включить его:

sudo systemctl enable atd.service

и запустить демон:

sudo systemctl start atd.service

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

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

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

at now + 10 minutes

at now + 10 hours

at now + 10 days

at now + 10 weeks

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

2. Выполнение вовремя:

at 23:10

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

at 11:00

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

3. Выполнять время и дату:

at 12:00 December 31

Другие альтернативные методы установки времени и даты можно найти в интерактивном руководстве «at».

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

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

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

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

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

sudo -i

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

После планирования команды введите:

exit

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

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

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

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

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

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

atq

или же

at -l
Как запланировать команды в Linux с помощью утилиты "at" - Linux

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

at -c 22

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

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

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

atrm 22

Запланируйте «at» для запуска графических приложений.

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

echo $DISPLAY

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

планирование at бежать. в подсказке "at', установите переменную ДИСПЛЕЙ на предыдущем значении (экспорт DISPLAY =: 0) и запустите желаемое графическое приложение.

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

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

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

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

Заключение

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

Перейти к верхней кнопке