Soluzione 1:
Puoi provare il last
comando:
last john
Stampa la cronologia di accesso/uscita dell'utente john. Mentre si esegue solo
last
stampa la cronologia di accesso/uscita di tutti gli utenti.
Soluzione 2:
Se hai bisogno di andare più 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 invierei l'output a grep per cercare uno schema di data specifico.
last john | grep -E 'Aug (2[0-9]|30) '
per mostrare il 20-30 agosto. O qualcosa del tipo:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
da acquisire dal 10 al 30 luglio per l'utente john
.
Soluzione 3:
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/ago:
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 la data e l'ora nella colonna corrispondente dalast
uscita+%s
per convertire datetime in Epoch time-ge
sta per maggiore o uguale-le
sta per minore o uguale
Puoi anche farlo per un utente specifico con last <username>
.