Lösung 1:
Sie können den last
ausprobieren Befehl:
last john
Es druckt den Login/Out-Verlauf des Benutzers john. Während läuft nur
last
druckt den Anmelde-/Abmeldeverlauf aller Benutzer aus.
Lösung 2:
Wenn Sie in der Geschichte weiter als einen Monat zurückgehen müssen, können Sie /var/log/wtmp.1
lesen Datei mit dem last
Befehl.
last -f wtmp.1 john
zeigt den Anmeldeverlauf des Vormonats für Benutzer john
.
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) '
vom 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) '
vom 10. bis 30. Juli für Benutzer john
zu erwerben .
Lösung 3:
Wie kann ich den Anmeldeverlauf für einen bestimmten Datumsbereich in Linux extrahieren?
Ein Beispiel zum Auflisten aller Benutzer, die sich vom 25. bis 28. August anmelden:
last | while read line
do
date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
[[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
awk '{ print $5" "$6" "$7 }'
um die Datumszeit in der entsprechenden Spalte auslast
zu extrahieren Ausgabe+%s
Datumszeit in Epochenzeit umzuwandeln-ge
stehen für größer oder gleich-le
stehen für kleiner oder gleich
Sie können dies auch für bestimmte Benutzer mit last <username>
tun .