Как прочитать столбец "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 имеет разные форматы для каждого из пользователей:
- "AA.BBs", очевидно, означает, что секунды AA и BB 1/100-ые секунды (46 секунд в случае июня) прошли с тех пор, как она в последний раз была активна на консоли.
- "AA: BBm", вероятно, означает, что часы AA и BB прошли с тех пор, как Джон в последний раз активировал свою сессию.
- "AA: BB" - это формат, который я не могу понять - как долго Дженнифер не проявляет активности на своей сессии?
4 ответа
Без квалификатора это означает MM:SS - то есть минуты и целые секунды. В качестве дополнительного бонуса есть четвертый формат, которого у вас нет в этом выводе - количество дней (NNdays) бездействия.
Со страницы руководства
Стандартный формат: DDdays, HH:MMm, MM:SS или SS.CC, если время больше 2 дней, 1 часа или 1 минуты соответственно.
таким образом, ваш вывод MM:SS (>1 м и <1 час).
Ответ 27 минут и 47 секунд
- по умолчанию используется формат MM: SS.
- 22: 29 м означает 22 часа и 29 минут
- 46,00 с означает 46 секунд
- 4d означает 4 дня
Не совсем ответ на ваш вопрос, но более простой подход к проверке времени простоя сеансов входа в систему состоит в том, чтобы взглянуть на /dev/pts. Время изменения файлов там отражает последний раз, когда сеанс входа получал данные.
Вы должны быть в состоянии выполнять там операции статистики (например, stat --format="%n %X" *) и хранить все в секундах эпохи. Должен облегчить любые расчеты.