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

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

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

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

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

Читайте также: Руководство для начинающих по использованию Cron в Linux

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

В 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-в-включен-atd

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

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

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» .

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

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

Linux-подсказка

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

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

sudo -i

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

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

exit

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

Linux-по-расписанию-poweroff

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

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

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

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

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

at -l

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

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

at -c 22

Linux-на-кошачьей работе

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

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

atrm 22

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

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

echo $DISPLAY

Обычно это :0.

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

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

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

Linux-в-libreoffice-запланированное открытие

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

Заключение

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

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

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

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи