Назад | Перейти на главную страницу

Как читать столбец «IDLE» в выводе команды Linux 'w'?

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

Проблема - w использует 3 разных формата для указания времени простоя сеанса, и я не могу их правильно понять. Выход w может выглядеть так:

 11:40:57 up 400 days, 10:46, 13 users,  load average: 5.07, 5.10, 4.83
USER     TTY      FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
john     pts/1    XX.XX.XX.XX   Wed13   22:29m  0.13s  0.04s ssh master-db
june     pts/2    XX.XX.XX.XX   Wed13   46.00s  0.67s  0.13s -bash
jenn     pts/4    XX.XX.XX.XX   11:13   27:47   4.16s  0.11s -bash

Как видите, IDLE имеет разные форматы для каждого из пользователей:

Со страницы руководства

Стандартный формат - DDdays, HH: MMm, MM: SS или SS.CC, если время превышает 2 дня, 1 час или 1 минуту соответственно.

поэтому ваш результат - MM: SS (> 1 м и <1 час).

Без квалификатора это означает MM: SS, то есть минуты и целые секунды. В качестве дополнительного бонуса есть четвертый формат, которого у вас нет в этом выводе - количество дней (NN дней) бездействия.

Не совсем ответ на ваш вопрос, но более простой способ проверить время простоя сеансов входа в систему - это посмотреть / dev / pts. Время модификации файлов там отражает последний раз, когда сеанс входа в систему получил ввод.

Там вы должны иметь возможность выполнять статистические операции (например, stat --format = "% n% X" *) и сохранять все в секундах эпохи. Должен упростить расчеты в любое время.

Ответ - 27 минут 47 секунд.

  1. формат по умолчанию - MM: SS.
  2. 22:29 м означает 22 часа 29 минут
  3. 46.00 с означает 46 секунд
  4. 4d означает 4 дня