Risposte:
Puoi provare il lastcomando:
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.1file con il lastcomando.
last -f wtmp.1 johnmostrerà 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 lastdall'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>.
lastoutput è piuttosto leggibile?
grepdal "15 agosto alle 09:00" al "25 agosto alle 21:00"?