Как настроить запуск команды каждые несколько секунд в Linux

Как настроить запуск команды каждые несколько секунд в Linux

Рубрики:

Linux, Терминал Linux

Метки:

, , , , ,

Как системному администратору, Вам придется научиться настраивать регулярное автоматическое выполнение одних и тех же команд. В большинстве случаев такую задачу можно легко решить с помощью планировщика задач cron. Однако этот метод имеет существенные технические ограничения — самый короткий интервал между выполнениями команды не может быть меньше одной минуты. Что делать, если Вам нужно выполнять команды повторно чаще одного раза в минуту? Из этой статьи Вы узнаете о простых методах регулярного запуска команд через определенные промежутки времени — без предварительной настройки средств автоматизации.

Содержание:

  1. Как настроить периодическое выполнение команды Linux через указанный промежуток времени
  2. Настраиваем периодическое выполнение команды с помощью watch
  3. Настраиваем периодическое выполнение команды с помощью циклов
    1. Используем цикл for
    2. Используем цикл while
  4. Выводы

Как настроить периодическое выполнение команды Linux через указанный промежуток времени

Существует сразу несколько способов, с помощью которых системный администратор Linux может настроить автоматическое повторение одной и той же команды. В рамках данной статьи мы расскажем о команде watch, а также — о циклах for и while.

Настраиваем периодическое выполнение команды с помощью watch

Команда watch — это инструмент командной строки Linux, который периодически выполняет заданное пользователем действие, а также — выводит на экран соответствующую информацию. По умолчанию программа запускает команду через каждые 2 секунды. Скорее всего, Вам будут интересны следующие опции команды watch:

  • -n — позволяет изменить время обновления команды;
  • -d — показывает разницу между текущим и предыдущим обновлением вывода;
  • -h — выводит подробную справочную информацию о команде.

Чтобы узнать больше о синтаксисе и опциях утилиты — введите ее в командную строку с опцией --help:

 

watch help

Давайте же рассмотрим несколько примеров использования команды watch. Допустим, что нам нужно повторять каждые 2 секунды команду date, которая выводит на экран текущие дату и время:

 

watch date

Если Вас интересует другой интервал между повторным выполнением команды вместо стандартных 2 секунд — Вы можете его изменить. Для этой цели достаточно использовать команду с параметром -n и указать в качестве аргумента времени в секундах. Для примера — попробуем повторять команду date каждые 5 секунд:

 

interval 5 sec

Если Вам важно видеть разницу между обновлениями вывода — добавьте к команде параметр -d. Благодаря нему команда будет выделять в выводе изменения, которые произошли с последнего обновления. В нашем примере — выделена цифра, соответствующая секундам в выводе команды date:

 

watch difference

Как Вы могли заметить, команда watch повторяет действия в интерактивном окне терминала. Если Вам нужно закончить работу с утилитой и вернуться в командную строку — просто нажмите комбинацию клавиш Ctrl + C.

Читайте также: Настройка планировщика cron в Linux / UNIX

Настраиваем периодическое выполнение команды с помощью циклов

Если Вы знакомы с программированием, то наверняка знаете, что такое цикл. Самые известные и часто употребляемые их виды — это цикл for и цикл while. В данном случае мы будем их использовать вместе с командой sleep — утилитой командной строки, позволяющей настроить задержку по времени между выполнением действий.

Цикл for

Прежде всего, рассмотрим пример с циклом for. Допустим, что Вам нужно, чтобы цикл выполнил ранее использованную команду date 10 раз с задержкой в 2 секунды. В таком случае достаточно ввести в командную строку следующую команду:

 

for loop

Как Вы могли заметить, время, которое выдает команда date, каждый раз увеличивается на интервал, выбранный с помощью команды sleep — на 2 секунды.

Цикл while

В следующем примере мы будем использовать цикл while. Он подойдет в тех случаях, когда нужно повторять команду date бесконечное количество раз, например — снова с интервалом в 2 секунды. В таком случае достаточно ввести в командную строку следующую команду:

 

while loop

Вышеуказанная команда будет выполняться до тех пор, пока не будет прервана пользователем.

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

Выводы

Мы выяснили два способа, позволяющих настроить многократное выполнение команды с заданным интервалом. Стоит отметить, что эти способы не могут полностью заменить планировщик cron, поскольку он запускает команды даже после перезагрузки системы. Тогда как наши способы применимы лишь в рамках текущего сеанса пользователя. Однако, каждый системный администратор должен уметь использовать команду watch, а также циклы for и while.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Терминал Linux

Метки:

, , , , ,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню