Ich versuche, einen Prozess zu finden, der Benutzersitzungen auf einem Remote-Server überwacht und sie benachrichtigt, wenn sie zu lange inaktiv sind, was mit dem Linux-Befehl w
angemessen ist.
Das Problem ist - w
verwendet 3 verschiedene Formate, um die Leerlaufzeit der Sitzung anzugeben, und ich kann sie nicht richtig herausfinden. Eine Ausgabe von w
könnte folgendermaßen aussehen:
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
Wie Sie sehen können, hat IDLE für jeden Benutzer unterschiedliche Formate:
- "AA.BBs" bedeutet offensichtlich, dass AA Sekunden und BB 1/100 Sekunde (46 Sekunden im Fall von Juni) vergangen sind, seit sie das letzte Mal auf der Konsole aktiv war.
- "AA: BBm" bedeutet wahrscheinlich, dass AA-Stunden und BB-Minuten vergangen sind, seit John das letzte Mal in seiner Sitzung aktiv war.
- "AA: BB" ist das Format, das ich nicht herausfinden kann - wie lange ist Jennifer in ihrer Sitzung nicht aktiv?
w
anders sind als die Zeitstempel in den/dev/pts
Dateien. Irgendeine Idee warum?watch
.Die Antwort ist 27 Minuten und 47 Sekunden
quelle