Найти тему

Запускаем команды в Linux по кругу при помощи watch

Оглавление
Запускаем команды в Linux по кругу при помощи watch
Запускаем команды в Linux по кругу при помощи watch

Несмотря на загруженность и невозможность пока что отдавать ведению канала столько внимания, сколько бы хотел, всё равно не могу оставить читателей и подписчиков без интересного материала. Поговорим в этой статье о том... как пустить команды в Linux по кругу. Поможет нам в этом watch.

Чтобы попробовать все описанные в этой статье команды можно, конечно же, использовать домашний компьютер или ноутбук. Ну а можно взять в аренду виртуальный сервер у провайдера Таймвеб и делать с ним всё, что пожелает душа. При регистрации по ссылке ниже и оплате услуг облачного сервера мы получим по 300 рублей на баланс. Если же закажите услугу выделенного сервера, то на баланс будет зачислено 2000 рублей. Не стоит мешкать, переходите по ссылке и начните пользоваться надёжным хостинг-провайдером Timeweb!

Облачная инфраструктура для бизнеса — Timeweb Cloud

🤌 Что делает watch?

Основное предназначение watch - запускать ту команду, которую желает пользователь через определенные промежутки времени и выводить выхлоп в окно терминала. По сути, в этом watch похож чем-то на команду tail, только в этом случае для вывода используется не содержимое файла или лога, а другая команда. Если не знаете, что можно делать при помощи tail, то почитайте материал о работе с файлами в Linux.

Команда watch доступна во всех дистрибутивах Linux сразу после установки, так что не нужно тратить время, чтобы установить её из репозиториев.

⚙️ От слов к делу: немного практики

Давайте посмотрим на пару примеров того, как можно использовать watch, чтобы сложилось понимание о самой команде и её возможностях.

Например, watch можно использовать, чтобы отслеживать доступную оперативную память на сервере. В статье про пять способов проверки памяти в Linux, ссылку на которую вы сможете найти ниже, я уже показывал ту команду, которую мы теперь скормим watch - это базовая вещь под названием free.

Отслеживаем доступную память в режиме реального времени
Отслеживаем доступную память в режиме реального времени

Чтобы связать free и watch откройте терминал и введите туда следующее сочетание:

watch free -g

В итоге, изменения в памяти будут отражаться практически сразу. В моём случае на скриншоте это не так явно видно, но если речь идёт про сервер на Linux, то там подобная штука очень пригодится.

Гораздо чаще я использую watch, чтобы отслеживать изменения в размере файлов и директорий. Часто бывает необходимо синхронизировать между серверами что-либо или распаковать архив в директорию. Чтобы знать, как изменяется размер достаточно ввести следующее сочетание:

watch du -sh <файл или папка>

На прикрепленном ниже примере я сделал пустой файл test.file и потом записал в него 5 гигабайт данных. Команда watch позволила отследить момент, когда из пустышки файл увеличился в размере в несколько раз.

⌛ Поиграем немного со временем

Если обратили внимание, то когда запускается watch, то в вверху выхлопа всегда написано «Every 2,0s». Это значение обновления команды по-умолчанию. Чтобы изменить значение в большую или меньшую сторону, можно указать ключ -n и значение в секундах.

watch -n5 du -sh <файл или папка>

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

🏁 Вместо заключения...

Естественно, команда watch будет полезна, в первую очередь, системным администраторам и всем, кто каким-то образом работает с серверами на Linux. Но думаю, что инициативные домашние линуксоиды тоже смогут найти применение watch в своих сценариях. В общем, лучше знать и пусть не пригодится, чем не знать, когда понадобится.

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