WATCH(1)

НАЗВА
watch — програма для періодичного виконання інших програм з виведенням даних на весь екран

КОРОТКИЙ ОПИС
watch [параметр ...] команда

ОПИС
watch виконує команду регулярно, показує виведені нею дані та повідомлення щодо помилок (перший екран). За watch ви зможете спостерігати за змінами у виведених даних із часом. Типово, запуск програми команда відбуватиметься кожні 2 секунди, аж доки роботу watch не буде перервано. У заголовку буде розміщено відомості щодо часу запуску і часу роботи команди, а також її код виходу.

ПАРАМЕТРИ

-b, --beep
    Гудок, якщо виконання команди завершується ненульовим станом.

-c, --color
    Обробляти послідовності символів ANSI для кольорів і стилю.

-C, --no-color
    Не обробляти послідовності символів ANSI для кольорів і стилю.

-d, --differences[=permanent]
    Позначити відмінності між двома послідовними запусками. Якщо задано необов'язковий аргумент permanent, watch покаже усі зміни із часу першого запуску. Аргумент permanent має бути пов'язано із параметром, як у -d1 або --differences=1.

-e, --errexit
    Заморозити оновлення при помилці команди і вийти після натискання клавіші. Код виходу watch буде кодом, з яким завершила роботу команда. Якщо причиною переривання роботи команди є сигнал n, кодом виходу буде 128 + n.

-f, --follow
    Замість очищення екрана під час кожного оновлення, watch гортатиме виведені дані, подібно до того, як працює tail -f. Цей параметр несумісний з жодним параметром відстеження виведення на екран, таким як параметри --differences, --chgexit та --eqexit.

-g, --chgexit
    Вийти, якщо видимі виведені дані команди змінюються. Зміни, які виходять за межі екрана через малий розмір екрана, або великі виведені дані не спричинять вихід з watch.

-n, --interval число
    Визначити інтервал між запусками. Значення, які є меншими за 0.1 і більшими за 2678400 (31 день) буде перетворено у відповідні обмежувальні значення. У всіх локалях працюють і «.» і «,». Для постійного визначення нетипового інтервалу можна скористатися змінною середовища WATCH_INTERVAL (для неї використовуються ті самі правила і форматування).

-p, --precise
    Виконати команду за --interval секунд після того, як стався попередній запуск, замість запуску за --interval секунд після завершення її попереднього виконання. Якщо для завершення роботи команди потрібно більше --interval секунд, програма чекатиме на її завершення.

-q, --equexit <цикли>
    Вийти, коли виведення команди не змінюється вказану кількість циклів.

-r, --no-rerun
    Не перезапускати програму при зміні розмірів вікна термінала. Виведені програмою дані знову з'являться на екрані при наступному регулярному запуску.

-s, --shotsdir
    Каталог для збереження знімків вікон.

-t, --no-title
    Вимкнути заголовок, який зазвичай буде показано у верхній частині екрана.

-w, --no-wrap
    Вимкнути перенесення рядків. Довгі рядки буде обрізано, замість перенесення на наступний.

-x, --exec
    Передати команду виклику exec(3), замість sh -c. Програму буде запущено дещо швидше. Можливості командної оболонки (налаштувань середовище, розгортання змінних і шляхів тощо) будуть недоступні.

-h, --help
    Вивести текст довідки і завершити роботу.

-v, --version
    Вивести дані щодо версії і завершити роботу.

КЕРУВАННЯ З КЛАВІАТУРИ

spacebar
    Видати команду негайно. Якщо команда вже виконується, її не буде перервано,а її наступний запуск буде розпочато без затримки.

q   Вийти з watch. У поточній версії виконання команди перервано не буде (на відміну від сигналів переривання, зокрема SIGKILL у відповідь на Ctrl+C).

s   Зробити знімок екрана. Його буде збережено у робочому каталозі, якщо не вказано іншого каталогу за допомогою --shotsdir. Якщо відбувається виконання команди, знімок буде створено, щойно виконання команди буде завершено.

СТАН ВИХОДУ

0   Успіх. Не відповідає коду виходу команди.

1   Помилки, які не пов'язано із виконанням команди.

2   Помилки, які пов'язано з виконанням команди і керування ним (не код виходу).

будь-який ненульовий (--errexit)
    З --errexit буде повернуто останній код виходу команди.

СЕРЕДОВИЩЕ
На поведінку grep впливають наступні змінні середовища.

WATCH_INTERVAL
    Інтервал оновлення, використовує ті самі правила, що і параметр командного рядка --interval.

COLUMNS
    Ширина екрана термінала у символах. Встановіть, щоб перевизначити автоматично встановлене значення.

LINES
    Висота екрана термінала у символах. Встановіть, щоб перевизначити автоматично встановлене значення.

ЗАУВАЖЕННЯ
Спосіб обробки параметрів POSIX (тобто обробка параметрів завершується на першому з аргументів, який не є параметром). Це означає, що параметри після команди не оброблятимуться самою програмою watch.

Непридатні до виведення символи буде усунуто із даних, виведених програмою. Якщо ви хочете побачити ці символи, скористайтеся cat -v у послідовності команд, створеній за допомогою символу каналу (|).

ПРИКЛАДИ

Для спостереження за змінами у вмісті каталогу можна скористатися такою командою:

    watch -d ls -l

Якщо у вас є процесори із динамічною частотою, і ви хочете спостерігати за її зміною, спробуйте таке. Команду буде передано командній оболонці, яка надасть вам змогу створити канал виконання. Лапки є також особливістю виконання у командній оболонці.

    watch -n1 'grep "^cpu MHz" /proc/cpuinfo | sort -nrk4'

Щоб спостерігати за працездатністю ваших серверів, зберігаючи копію виведених даних кожного запуску до файла, ви можете скористатися цим. -p призводить до виконання команди кожні 10 секунд, незалежно від того, наскільки довго триватиме попереднє виконання.

    watch -n10 -p -d '{ date; for i in 10.0.0.31 10.0.0.32 10.0.0.33; do R=OK; ping -c2 -W2 "$i" &>/dev/null || R=FAIL; echo "$i: $R"; done } | tee -a ~/log'

Стежити за діями зі встановлення найновіших версій ядра адміністратора вашого комп’ютера можна за допомогою такої команди:

    watch uname -r

ВАДИ
При зміні розмірностей термінала, його зміни вмісту не буде зареєстровано при наступному запуску команди. --chgexit не запустить цей цикл і лічильник --equexit не буде перезапущено, навіть якщо тим часом зміняться виведені командою даних. Підсвічування --differences буде скинуто.

Як надіслати звіт про вади
Про вади, будь ласка, повідомляйте на адресу procps@freelists.org.