Site icon IT Education Center Blog – блог навчального центру DevOps – ITEDU by NETFORCE Group

Утиліта at: плануємо разові завдання

Багато хто навіть не чув про утиліту at, за допомогою якої можна запланувати відкат правил брандмауера через 5 хвилин, якщо щось пішло не за планом.Опинившись у такій ситуації, ми й познайомилися з at. Потім, звичайно ж дізналися, що у FreeBSD є вбудований скрипт change_rules.sh для безпечної настройки правил ipfw., але це вже зовсім інша історія.

* At це утиліта командного рядка, яка допомагає планувати реалізацію команд в певний час. Створені за допомогою at завдання виконуються разово.

Встановлюємо at

Залежно від дистрибутива, at може бути у вашій системі Linux за замовчуванням, а може і не бути. У разі, коли утиліти немає, ви можете легко встановити її за допомогою диспетчера пакетів вашого дистро.

Інсталяція at на Ubuntu і Debian

$ sudo apt update
$ sudo apt install at

Установка at на CentOS і Fedora

$ sudo yum install at

Використовуємо команду at 

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

at [OPTION...] runtime

Команда at приймає runtime, який ви задали, як параметр командного рядка.

Як створити завдання, яке виконається о 9:00?

$ at 09:00

Як тільки клацнете Enter, перед вами з’явиться командний рядок at, який починається з at> (швидше за все). Далі, побачите повідомлення, в якому вказується оболонка, де буде виконуватися команда:

warning: commands will be executed using /bin/sh
at>

Введіть команди, які вам потрібно виконати. Наприклад:

tar -xf /home/linuxize/file.tar.gz

Коли закінчите з введенням команди, натисніть Ctrl-D, щоб зберегти завдання і вийти:

at> <EOT>
job 4 at Tue May  5 09:00:00 2020

Команда покаже номер, час і дату виконання завдання.

Визначаємо час виконання

В утиліті at можна:

Все це можна комбінувати, ось кілька прикладів: 

$ at sunday +10 minutes

$ at 1pm + 2 days

$ at 12:30 102321

$ at now +1 hours

Вказуємо чергу 

За замовчуванням завдання плануються у зазначеній черзі. Ви можете задати чергу за допомогою опції -q. Наприклад, з чергою L:

$ at monday +2 hours -q L

Подивитися чергу завдань можна так:

$ atq

Як видалити завдання, які не завершились?

Щоб видалити відкладене завдання, викличте atrm або, at -r за якою слідує номер завдання. Наприклад, щоб видалити завдання з номером 9, ви повинні запустити:

$ atrm 9

Подробиці завдання:

$ at -c 9

За допомогою файлів /etc/at.allow і /etc/at.deny можна обмежувати список користувачів, кому дозволили юзати at.

Підсумок

Під час написання команди, використовуйте повні шляхи до бінарників, щоб не допустити проблем з path, якого не існує. Список виконаних команд в CentOs, можна подивитися там само, де і логи cron.

Exit mobile version