Ich muss den Anmeldeverlauf für einen bestimmten Benutzer kennen (dh Anmelde- und Abmeldezeit). Wie extrahiere ich diesen Verlauf für einen bestimmten Datumsbereich in Linux?
94
Sie können den last
Befehl versuchen :
last john
Es druckt den Login / Out-Verlauf von Benutzer john aus. Wobei gerade läuft
last
druckt den Login / Out-Verlauf aller Benutzer aus.
Wenn Sie mehr als einen Monat in der Geschichte zurücklegen müssen, können Sie die
/var/log/wtmp.1
Datei mit demlast
Befehl lesen .last -f wtmp.1 john
zeigt den Verlauf der Logins des Vormonats für den Benutzer anjohn
.Die letzte Protokollausgabe ist nicht zu umfangreich und relativ einfach zu analysieren. Daher würde ich die Ausgabe wahrscheinlich an grep leiten, um nach einem bestimmten Datumsmuster zu suchen.
last john | grep -E 'Aug (2[0-9]|30) '
20. bis 30. August zu zeigen. Oder so etwas wie:last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
10-30 Juli für Benutzer zu erwerbenjohn
.quelle
Ein Beispiel, um alle Benutzer aufzulisten, die sich vom 25. bis 28. August anmelden:
awk '{ print $5" "$6" "$7 }'
um das Datum und die Uhrzeit in der entsprechenden Spalte aus derlast
Ausgabe zu extrahieren+%s
um datetime in Epochenzeit umzuwandeln-ge
stehen für größer als oder gleich-le
stehen für weniger als oder gleichSie können dies auch für einen bestimmten Benutzer mit tun
last <username>
.quelle
last
Ausgabe ziemlich lesbar ist?grep
von "15. August 09:00" bis "25. August 21:00"?