Поиск по сайту:

Как планировать команды Linux - и когда это следует делать

Нужно заранее запланировать действие в Linux? Эта команда может помочь.

У Linux есть много хитростей в рукаве, что помогает сделать его одной из самых мощных и гибких операционных систем на планете.

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

Чем занимаешься? Обратитесь к адресу.

Что такоекоманда at?

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

По сути, он работает следующим образом:

at [OPTION(s)] execution_time

Здесь OPTION(s) — это различные опции, которые вы можете добавить, а execution_time — время/дата выполнения команды.

С помощью at вы можете запланировать выполнение команды на определенное время, на определенное количество минут или часов после текущего времени, на определенную дату/время или даже на несколько дней вперед - это действительно гибко.

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

Как использовать в

Давайте остановимся на нашем примере выше, распечатав файл в определенное время. Во-первых, печать из командной строки обрабатывается с помощью командыlp. Если к устройству подключен только один принтер, вам не нужно указыватьlp, какой принтер использовать. Нам также придется использовать командуechoи канал. Звучит сложно, но это не так. Вот как это сделать.

1. Откройте окно терминала

Первое, что вам нужно сделать, это открыть окно терминала в вашем дистрибутиве Linux. Как только вы это сделаете, проверьте установку at с помощью команды:

at -V

Вы должны увидеть что-то вроде этого в выводе:

at version 3.2.5
Please report bugs to the Debian bug tracking system (http://bugs.debian.org/)
or contact the maintainers (at@packages.debian.org).

2. Создание первой части команды

Помните, когда я сказал, что синтаксис команды находится в [OPTION(s)] execution_time? Это всего лишь структура самой команды, но она не включает в себя команду, с которой вы хотите выполнить at.

Беспорядочный? Вы не будете. Мы должны использовать команду echo для создания того, что мы хотим запустить. Используя наш пример, мы распечатаем файл zdnet.txt помощью команды lp. Для этого мы будем использовать следующее:

echo "lp zdnet.txt"

3. Передайте результаты первой командыв at

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

echo "lp zdnet.txt" |

Вывод нашей первой команды "lp zdnet.txt" - это команда на печать файла zdnet.txt.

4. Установите время

Распечатаем файл zdnet.txt через два часа от текущего времени, которое будет сейчас + 2 часа. Вы также можете указать дату.

Допустим, вы хотите распечатать файл в 3 часа дня, через пять дней от текущей даты, что можно сделать в 3 часа дня + 5 дней.

5. Соберите все вместе

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

echo "lp zdnet.txt" | at now + 2 hours

Если вы выполните эту команду, вы увидите вывод, информирующий вас о том, когда команда будет выполнена. Например, мой вывод был следующим:

warning: commands will be executed using /bin/sh
job 1 at Mon Oct 21 10:24:00 2024

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

Вот как вы используете команду at в Linux. Я бы порекомендовал просмотреть страницу руководства (man at), чтобы узнать больше о том, как запланировать конкретное время и даты с помощью команды.

Статьи по данной тематике