Подключённые пользователи и нагрузка на сервер как на ладони! Полное практическое руководство по команде w в Linux

Обзор

При мониторинге серверов и управлении пользовательскими сессиями команда w является ключевым инструментом, позволяющим мгновенно оценить список подключённых в данный момент пользователей и среднюю нагрузку на систему (Load Average). В этой статье мы подробно и поэтапно разберём базовый вывод команды w, полезные в реальной практике комбинации опций, а также её отличия от утилит who и uptime.

1. Оценка активных пользователей и нагрузки на систему: базовый запуск w

Для сравнения времени непрерывной работы системы и данных о нагрузке с первой строкой вывода команды w выполним команду uptime.

uptime

Команда w используется для быстрого получения информации о вошедших в систему пользователях, выполняемых ими процессах, а также общем состоянии нагрузки на систему.
В первой строке вывода отображаются текущее время, время непрерывной работы (uptime), количество подключённых пользователей и средняя нагрузка за последние 1, 5 и 15 минут (Load Average). Начиная со второй строки выводится подробная информация по сессиям каждого пользователя.
⚙️ [Основные опции]

-h, --no-header : не выводить заголовок (верхнюю информацию о нагрузке и названия колонок), отображая только список пользователей.
-s, --short : использовать сокращённый формат вывода, опуская поля времени входа, JCPU и PCPU.
-f, --from : переключить отображение поля FROM, содержащего исходный IP-адрес или имя хоста подключения.
-i, --ip-addr : отображать IP-адрес источника подключения вместо имени хоста.
-o, --old-style : использовать старый формат вывода с пробелами, оставляя поле пустым, если время простоя составляет менее одной минуты.

w

2. Отключение заголовков и упрощение вывода для скриптов мониторинга (-h, -s)

Команда w -h отключает вывод верхней сводки о времени работы системы и строки заголовков столбцов, возвращая только чистый список пользовательских сессий.
Это особенно удобно при парсинге количества подключений или данных конкретных пользователей в скриптах, когда лишние служебные строки не нужны.
В данный момент в системе нет авторизованных пользователей, поэтому вывод пуст.

w -h

Команда w -s переключает формат вывода на компактный (short).
Стандартные поля времени входа (LOGIN@), JCPU и PCPU опускаются, что позволяет комфортно просматривать основные параметры — сессию, источник подключения, время бездействия (IDLE) и запущенную команду (WHAT) — даже в терминалах с небольшой шириной окна.

w -s

Команда w -hs объединяет опцию скрытия заголовков (-h) и опцию компактного вывода (-s).
Удаление заголовка и второстепенных полей позволяет получить исключительно строки с ключевыми данными сессий, что крайне полезно при автоматизации мониторинга на Bash.
Поскольку в настоящий момент активные пользователи отсутствуют, выполнение завершается без вывода информации.

w -hs

3. Фильтрация по конкретному пользователю и управление отображением IP-адресов (-i, имя пользователя)

Для отработки фильтрации по конкретному пользователю определим имя текущей учетной записи с помощью команды whoami и сохраним его в переменную CURRENT_USER.

CURRENT_USER=$(whoami)

Команда w "$CURRENT_USER" выводит сведения о сессиях исключительно для указанной учётной записи пользователя.
Это незаменимо в многопользовательской среде с большим количеством активных сессий, когда требуется быстро отследить действия или время простоя конкретного пользователя.

w “$CURRENT_USER”

Команда w -i принудительно отображает источник подключения (FROM) в виде IP-адреса вместо имени хоста.
Это помогает избежать задержек, связанных с обратным разрешением DNS (Reverse DNS), а также полезно в случаях, когда необходим точный удалённый IP-адрес подключения.

w -i

4. Сравнение на практике: разница между w, who и uptime

Команда uptime выводит в одну строку краткую сводку: текущее системное время, время непрерывной работы, количество активных пользователей и среднюю нагрузку (Load Average) за последние 1, 5 и 15 минут.
Она идеально подходит для быстрой оценки общей работоспособности и нагрузки сервера без детализации по отдельным сессиям.

uptime

Команда who -u отображает список пользователей, выполнивших вход в систему, сведения о терминале, время входа, время простоя (idle time) и идентификатор процесса (PID).
Она оптимальна для идентификации активных сессий без отображения данных о нагрузке системы и выполняемых пользователями командах.
В настоящий момент активные сессии отсутствуют, поэтому возвращается пустой вывод.

who -u

Команда w объединяет сводную информацию о нагрузке системы из uptime и список сессий из who, дополнительно предоставляя полные сведения о выполняемых процессах (WHAT) и потреблении ресурсов CPU каждым пользователем.
В верхней части отображается средняя нагрузка, а ниже — подробный список сессий, что позволяет на одном экране сопоставить нагрузку на сервер с действиями подключённых пользователей.

w

В этом материале мы рассмотрели, как использовать команду w для наглядного анализа активных сессий и состояния нагрузки на Linux-сервер.
Рекомендуем включить эту команду в базовый список проверок при регулярном аудите и устранении неполадок на ваших серверах.