Antworten:
Wenn Sie mehr als einen Monat in der Geschichte zurücklegen müssen, können Sie die /var/log/wtmp.1
Datei mit dem last
Befehl lesen .
last -f wtmp.1 john
zeigt den Verlauf der Logins des Vormonats für den Benutzer an 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) '
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 erwerben john
.
Wie extrahiere ich den Anmeldeverlauf für einen bestimmten Datumsbereich in Linux?
Ein Beispiel, um alle Benutzer aufzulisten, 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 das Datum und die Uhrzeit in der entsprechenden Spalte aus der last
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>
.
last
Ausgabe ziemlich lesbar ist?
grep
von "15. August 09:00" bis "25. August 21:00"?