Як читати стовпчик "IDLE" у висновку команди "w" для Linux?


11

Я намагаюся розібратися з процесом, який відстежує сеанси користувачів на віддаленому сервері та попереджає їх, коли вони занадто довго простоюють, що з командою 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) бездіяльності.


10

З чоловічої сторінки

Стандартний формат - DDdays, HH: MMm, MM: SS або SS.CC, якщо час перевищує відповідно 2 дні, 1 година або 1 хвилина.

тому ваш вихід становить MM: SS (> 1м і <1 година).


1

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

Ви повинні мати можливість робити статистичні операції там (наприклад, stat --format = "% n% X" *) і тримати все в епохальних секундах. Слід зробити простіші розрахунки часом.


1
Якщо ви виявите, що ви розбираєте формати часу, ви, можливо, захочете шукати джерело цієї мітки в епоху.
cjc

1
Я щось читав про це, але помітив, що час роботи в режимі очікування wвідрізняється від часових позначок на /dev/ptsфайлах. будь-яка ідея чому?
Гасс

У якому контексті воно відрізняється? Я не придивився до цього уважно, але "w" повинен перетягувати інформацію звідкись, і / dev / pts - очевидне місце. Ах, може, якщо щось трапиться на екрані (/ dev / pts / * має бути двосторонній зв'язок); у такому випадку користувач буде простоювати, але, через те, що щось відбувається через пристрій, / dev / pts / 0, наприклад, буде оновлено.
cjc

Це, ймовірно, пояснення, і це переможе мою схему - тому що я хочу вимкнути непрацюючі сеанси, навіть якщо користувач описує якийсь активний файл журналу або використовує watch.
Guss

1

Відповідь - 27 хвилин і 47 секунд

  1. формат за замовчуванням - MM: SS.
  2. 22: 29м означає 22 години 29 хвилин
  3. 46,00с означає 46 секунд
  4. 4d означає 4 дні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.