Question Comment lire la colonne «IDLE» dans le résultat de la commande Linux 'w'?


J'essaie de trouver un processus qui surveille les sessions des utilisateurs sur un serveur distant et les avertit quand elles sont inactives trop longtemps, ce qui, avec la commande Linux w est judicieusement approprié.

Le problème est - w utilise 3 formats différents pour spécifier le temps d'inactivité de la session, et je ne peux pas les comprendre correctement. Une sortie de w pourrait ressembler à ceci:

 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

Comme vous pouvez le constater, IDLE a différents formats pour chacun des utilisateurs:

  • "AA.BBs" signifie évidemment que AA secondes et BB 1 / 100e de seconde (46 secondes dans le cas de June) s'est écoulée depuis sa dernière activité sur la console.
  • "AA: BBm" signifie probablement que les heures des AA et les minutes BB se sont écoulées depuis la dernière session de John.
  • "AA: BB" est le format que je n'arrive pas à comprendre - Depuis combien de temps Jennifer n'est-elle pas active dans sa session?

8
2017-08-18 08:58


origine




Réponses:


Sans qualificatif, cela signifie que MM: SS, c'est-à-dire minutes et secondes entières. En prime, il existe un quatrième format que vous n'avez pas dans cette sortie: un nombre de jours (NNdays) d'inactivité.


3
2017-08-18 09:05





De la page de manuel

Le format standard est DDdays, HH: MMm, MM: SS ou SS.CC si les heures sont         plus de 2 jours, 1 heure ou 1 minute respectivement.

votre sortie est donc MM: SS (> 1m et <1 heure).


10
2017-08-18 12:19





Pas tout à fait la réponse à votre question, mais une méthode plus simple pour vérifier le temps d’inactivité des sessions de connexion serait de regarder / dev / pts. Les heures de modification des fichiers qui y figurent reflètent la dernière fois que la session de connexion a reçu une entrée.

Vous devriez pouvoir y effectuer des opérations statistiques (par exemple, stat --format = "% n% X" *) et tout conserver en secondes d’époque. Devrait rendre les calculs de temps plus faciles.


1
2017-09-13 14:54



Si vous vous trouvez en train d’analyser des formats d’heure, vous pouvez rechercher une source de cet horodatage à l’époque. - cjc
J'ai lu quelque chose à ce sujet, mais j'ai remarqué que les temps morts signalés par w sont différents, alors les horodatages sur le /dev/pts des dossiers. une idée pourquoi? - Guss
Dans quel contexte est-ce différent? Je n'ai pas examiné cela attentivement, mais "w" doit extraire les informations de quelque part, et / dev / pts est un lieu évident. Ah, peut-être que quelque chose se passe à l'écran (/ dev / pts / * devrait être une communication bidirectionnelle); dans ce cas, l'utilisateur serait inactif, mais, à cause d'un incident sur le périphérique, / dev / pts / 0, par exemple, serait mis à jour. - cjc
C’est une explication probable et cela ira à l’encontre de mon stratagème - parce que je veux fermer les sessions inactives même si l’utilisateur met un fichier journal actif à jour ou utilise watch. - Guss


La réponse est 27minutes et 47seconds

  1. Le format par défaut est MM: SS.
  2. 22: 29m signifie 22 heures et 29 minutes
  3. 46.00s signifie 46 secondes
  4. 4d signifie 4 jours

1