Как запускать команду Linux каждые X секунд навсегда

by itisgood

Вы когда-нибудь были в ситуации, когда вам приходилось несколько раз запускать определенную команду Linux?

Ну, если вы еще не знаете , этот учебник научит вас, как это сделать.

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

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

Вот где команда Watch пригодится.

Эта команда может использоваться для повторного выполнения данной команды и контроля вывода в полноэкранном режиме.

Чтобы выразить это простыми словами, мы можем использовать команду Watch для запуска команды Linux каждые X секунд навсегда, и команда будет продолжать отображать вывод в консоли до тех пор, пока мы не остановим ее вручную, нажав CTRL + C, или убейте процесс или заставьте систему перезагрузится .

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

Запуск команды Linux каждые X секунд

Синтаксис команды watch:

$ watch [options] command

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

Пример 1:

Скажем, вы хотите запустить команду «uptime» каждые 2 секунды, чтобы контролировать время безотказной работы вашей системы.

Для этого просто запустите:

$ watch uptime

Пример вывода:

Every 2.0s: uptime                                     sk Wed Feb  9 20:14:46 2018

 20:15:46 up  2:38,  1 users,  load average: 0.41, 0.35, 0.46
  • Every 2.0s: время безотказной работы – команда «uptime» запускается каждые 2 секунды и отображает результат.
  • sk – текущий пользователь
  • Wed Feb 9 20:14:46 2018 – текущая дата и время, когда мы выполнили команду.

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

Чтобы выйти из команды, нажмите CTRL + C.

$ watch `uptime` > uptime.txt

или

$ watch `uptime` > uptime.doc

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

Пример 2

Как я упоминал ранее, команда watch выполняет программу каждые 2 секунды по умолчанию.

Мы можем изменить его на определенный интервал, например 5 секунд, используя параметр -n.

Отобразим использование дискового пространства файловой системы каждые 5 секунд.

$ watch -n 5 df -h

Пример вывода

Every 5.0s: df -h sk: Wed May 9 20:19:09 2018

Filesystem Size Used Avail Use% Mounted on
dev 3.9G 0 3.9G 0% /dev
run 3.9G 1.1M 3.9G 1% /run
/dev/sda2 457G 357G 77G 83% /
tmpfs 3.9G 32M 3.9G 1% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 36K 3.9G 1% /tmp
/dev/loop0 83M 83M 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 93M 55M 32M 64% /boot
tmpfs 789M 28K 789M 1% /run/user/1000

Чтобы проверить, действительно ли эта команда работает, создайте или удалите любой файл / папку.

Вы заметите, что свободное пространство изменилось на выходе после создания или удаления файлов / папок.

Пример 3

Чтобы просмотреть содержимое каталога, запустите:

$ watch -d ls -l

Здесь флаг «-d или -differences» будет выделять различия между последовательными обновлениями.

Пример вывода

total 3857440
-rw------- 1 sk users 1921843200 Apr 25 22:47 bionic-desktop-amd64.iso
-rw------- 1 sk users 1921843200 Apr 25 03:02 bionic-desktop-amd64.iso.zs-old
drwxr-xr-x 2 sk users 12288 May 8 18:45 Desktop
drwxr-xr-x 2 sk users 4096 Apr 20 16:54 Documents
drwxr-xr-x 11 sk users 4096 May 9 19:56 Downloads
drwxr-xr-x 2 sk users 4096 Jan 7 2017 Music
drwxr-xr-x 5 sk users 12288 Mar 23 17:34 Pictures
drwxr-xr-x 2 sk users 4096 May 11 2016 Public

Кроме того, вы можете отображать содержимое изменения каталога, которое принадлежит определенному пользователю ( например sk).

$ watch -d 'ls -l | fgrep sk'

Это может быть полезно в многопользовательской системе.

Пример 4

Чтобы отобразить информацию о памяти, запустите:

$ watch -d free -m

Пример 5

Для отображения вывода команды du каждые 10 секунд вы можете использовать:

$ watch -n 10 du -h
Every 10.0s: du -h                                                                                                                              sk: Wed May 9 20:26:43 2018
17M     ./.disruptive innovations sarl/bluegriffon/q87d9o6v.default/extensions
16K     ./.dooble/Dooble
4.0K    ./.dooble/Histories
176K    ./.dooble
4.0K    ./.PlayOnLinux/wine/mono
13M     ./.PlayOnLinux/wine/gecko
4.0K    ./.PlayOnLinux/wine/linux-amd64
652K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine/fonts
872K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine

Это действие отслеживает использование диска каждые 10 секунд, пока вы не выйдете из режима ti вручную.

Заключение

Теперь вы знаете, как выполнять команду каждые X секунд с помощью команды «watch».

Как правило, команда Watch используется для мониторинга использования диска и использования памяти.

Не путайте эту команду с другими инструментами мониторинга.

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

 

You may also like

Leave a Comment