Odpowiedzi:
Możesz spróbować wykonać last
polecenie:
last john
Drukuje historię logowania / wylogowywania użytkownika Johna. Podczas gdy bieganie właśnie
last
drukuje historię logowania / wylogowywania wszystkich użytkowników.
Jeśli chcesz cofnąć się do historii o więcej niż miesiąc, możesz odczytać /var/log/wtmp.1
plik za pomocą last
polecenia.
last -f wtmp.1 john
pokaże historię logowania użytkownika z poprzedniego miesiąca john
.
Ostatni wynik dziennika nie jest zbyt ciężki i stosunkowo łatwy do przeanalizowania, więc prawdopodobnie przepuściłbym dane wyjściowe do grep w celu znalezienia określonego wzorca daty.
last john | grep -E 'Aug (2[0-9]|30) '
pokazać 20-30 sierpnia. Lub coś takiego:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
uzyskać 10-30 lipca dla użytkownika john
.
Jak wyodrębnić historię logowania dla określonego zakresu dat w systemie Linux?
Przykład listy wszystkich użytkowników logujących się od 25 do 28 sierpnia:
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 }'
aby wyodrębnić datę i godzinę w odpowiedniej kolumnie z last
danych wyjściowych+%s
przekonwertować datę i godzinę na czas epoki-ge
oznacza większe lub równe-le
oznacza mniejszy lub równyMożesz to również zrobić dla konkretnego użytkownika za pomocą last <username>
.
last
dane wyjściowe są dość czytelne?
grep
od „15 sierpnia 09:00” do „25 sierpnia 21:00”?