summaryrefslogtreecommitdiff
path: root/LINUX/HOME_SERVER/watch.md
diff options
context:
space:
mode:
Diffstat (limited to 'LINUX/HOME_SERVER/watch.md')
-rw-r--r--LINUX/HOME_SERVER/watch.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/LINUX/HOME_SERVER/watch.md b/LINUX/HOME_SERVER/watch.md
new file mode 100644
index 0000000..8c9409a
--- /dev/null
+++ b/LINUX/HOME_SERVER/watch.md
@@ -0,0 +1,48 @@
+Команда watch: живой взгляд на процессы и метрики
+
+watch - утилита, которая повторно запускает любую команду через заданный интервал (по‑умолчанию 2 сек) и отображает её вывод полноэкранно. Подходит, когда:
+
+1) нужно увидеть изменение метрики прямо сейчас;
+2) нет времени поднимать полноценный мониторинг;
+3) требуется «подкараулить» событие и выйти, как только оно случится;
+4) работает везде: на Debian, BusyBox в Alpine, внутри Docker‑контейнера;
+
+Базовый синтаксис
+
+
+watch [-n <сек>] [-d] [-g] [-t] [-p] [-e] [-x] <команда>
+
+Ключевые опции
+
+"-n 5” — устанавливает интервал в 5 с. Хорош для медленных команд и экономии CPU;
+-d — подсвечивает изменения относительно предыдущего вывода. Удобно отслеживать «скачки»;
+-g — автоматически выходит, как только вывод изменится; полезно, когда ждёте окончания бэкапа;
+-e — завершает работу при ненулевом exit‑коде команды. Превращает watch в health‑check;
+-t — убирает заголовок watch. Идеален для чистых скриншотов;
+-p — синхронизирует запуск с системными секундами. Это важно при очень частых опросах, например "-n 0.2";
+-x — запускает команду без обёртки в shell. Это помогает, если команда содержит символы вроде $ или *, которые интерпретируются bash'ем;
+
+Практические примеры
+
+Топ прожорливых процессов
+
+
+watch -n 1 -d 'ps -eo pid,cmd,%cpu --sort=-%cpu | head'
+
+Ждём появления строки ERROR в логе и выходим
+
+
+watch -g "grep -q ERROR /var/log/app.log"
+echo 'Нашли ERROR!'
+
+Мини‑график latency
+
+
+watch -n 0.2 -p 'ping -c1 1.1.1.1 | awk -F"=" "/time=/{print $4}"'
+
+Лайфхаки
+
+"-d" подсвечивает изменения — удобно, когда хочешь быстро понять, что именно изменилось. Добавь "--differences=permanent", чтобы подсветка не исчезала между обновлениями.
+"-t" убирает заголовок watch — идеально для чистых логов или скриншотов.
+"-p" даёт ровный ритм (1 Hz и выше), полезно для прецизионного мониторинга.
+"-g" или "-e" + немного shell'а — и у тебя мини-скрипт, который реагирует на событие. \ No newline at end of file