Как системному администратору, Вам придется научиться настраивать регулярное автоматическое выполнение одних и тех же команд. В большинстве случаев такую задачу можно легко решить с помощью планировщика задач cron. Однако этот метод имеет существенные технические ограничения — самый короткий интервал между выполнениями команды не может быть меньше одной минуты. Что делать, если Вам нужно выполнять команды повторно чаще одного раза в минуту? Из этой статьи Вы узнаете о простых методах регулярного запуска команд через определенные промежутки времени — без предварительной настройки средств автоматизации.
Содержание:
- Как настроить периодическое выполнение команды Linux через указанный промежуток времени
- Настраиваем периодическое выполнение команды с помощью watch
- Настраиваем периодическое выполнение команды с помощью циклов
- Выводы
Как настроить периодическое выполнение команды Linux через указанный промежуток времени
Существует сразу несколько способов, с помощью которых системный администратор Linux может настроить автоматическое повторение одной и той же команды. В рамках данной статьи мы расскажем о команде watch
, а также — о циклах for и while.
Настраиваем периодическое выполнение команды с помощью watch
Команда watch
— это инструмент командной строки Linux, который периодически выполняет заданное пользователем действие, а также — выводит на экран соответствующую информацию. По умолчанию программа запускает команду через каждые 2 секунды. Скорее всего, Вам будут интересны следующие опции команды watch
:
-n
— позволяет изменить время обновления команды;-d
— показывает разницу между текущим и предыдущим обновлением вывода;-h
— выводит подробную справочную информацию о команде.
Чтобы узнать больше о синтаксисе и опциях утилиты — введите ее в командную строку с опцией --help
:
Давайте же рассмотрим несколько примеров использования команды watch
. Допустим, что нам нужно повторять каждые 2 секунды команду date
, которая выводит на экран текущие дату и время:
Если Вас интересует другой интервал между повторным выполнением команды вместо стандартных 2 секунд — Вы можете его изменить. Для этой цели достаточно использовать команду с параметром -n
и указать в качестве аргумента времени в секундах. Для примера — попробуем повторять команду date
каждые 5 секунд:
Если Вам важно видеть разницу между обновлениями вывода — добавьте к команде параметр -d
. Благодаря нему команда будет выделять в выводе изменения, которые произошли с последнего обновления. В нашем примере — выделена цифра, соответствующая секундам в выводе команды date
:
Как Вы могли заметить, команда watch
повторяет действия в интерактивном окне терминала. Если Вам нужно закончить работу с утилитой и вернуться в командную строку — просто нажмите комбинацию клавиш Ctrl + C.
Читайте также: Настройка планировщика cron в Linux / UNIX
Настраиваем периодическое выполнение команды с помощью циклов
Если Вы знакомы с программированием, то наверняка знаете, что такое цикл. Самые известные и часто употребляемые их виды — это цикл for и цикл while. В данном случае мы будем их использовать вместе с командой sleep
— утилитой командной строки, позволяющей настроить задержку по времени между выполнением действий.
Цикл for
Прежде всего, рассмотрим пример с циклом for. Допустим, что Вам нужно, чтобы цикл выполнил ранее использованную команду date
10 раз с задержкой в 2 секунды. В таком случае достаточно ввести в командную строку следующую команду:
Как Вы могли заметить, время, которое выдает команда date
, каждый раз увеличивается на интервал, выбранный с помощью команды sleep
— на 2 секунды.
Цикл while
В следующем примере мы будем использовать цикл while. Он подойдет в тех случаях, когда нужно повторять команду date
бесконечное количество раз, например — снова с интервалом в 2 секунды. В таком случае достаточно ввести в командную строку следующую команду:
Вышеуказанная команда будет выполняться до тех пор, пока не будет прервана пользователем.
Важно: рекомендуется установить интервал, достаточный для завершения выполнения повторяемой команды.
Выводы
Мы выяснили два способа, позволяющих настроить многократное выполнение команды с заданным интервалом. Стоит отметить, что эти способы не могут полностью заменить планировщик cron, поскольку он запускает команды даже после перезагрузки системы. Тогда как наши способы применимы лишь в рамках текущего сеанса пользователя. Однако, каждый системный администратор должен уметь использовать команду watch
, а также циклы for и while.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.