Risposte:
Puoi provare il last
comando:
last john
Stampa la cronologia di login / out dell'utente john. Considerando che funziona solo
last
stampa la cronologia di login / out di tutti gli utenti.
Se hai bisogno di tornare indietro nella storia di un mese, puoi leggere il /var/log/wtmp.1
file con il last
comando.
last -f wtmp.1 john
mostrerà la cronologia degli accessi del mese precedente per l'utente john
.
L'output dell'ultimo log non è troppo pesante e relativamente facile da analizzare, quindi probabilmente indirizzerei l'output a grep per cercare un modello di data specifico.
last john | grep -E 'Aug (2[0-9]|30) '
per mostrare il 20-30 agosto. O qualcosa del genere:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
acquisire il 10-30 luglio per l'utente john
.
Come estrarre la cronologia degli accessi per un intervallo di date specifico in Linux?
Un esempio per elencare tutti gli utenti che accedono dal 25 al 28 agosto:
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 }'
per estrarre l'ora della data nella colonna corrispondente last
dall'output+%s
per convertire il datetime in tempo di epoca-ge
sta per maggiore o uguale-le
sta per minore o ugualePuoi anche farlo per un utente specifico con last <username>
.
last
output è piuttosto leggibile?
grep
dal "15 agosto alle 09:00" al "25 agosto alle 21:00"?