Come estraggo la cronologia degli accessi?


94

Devo conoscere la cronologia di accesso per un utente specifico (ad es. Ora di accesso e disconnessione), come posso estrarre questa cronologia per un intervallo di date specifico in Linux?

Risposte:


133

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.


5
Questo restituisce valori solo per il mese corrente nella maggior parte delle distribuzioni Linux.
ewwhite,

42

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.


21

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 uguale

Puoi anche farlo per un utente specifico con last <username>.


1
È un'espressione brutta e potente. Grep non sarebbe più pulito poiché l' lastoutput è piuttosto leggibile?
ewwhite,

3
Puoi grepdal "15 agosto alle 09:00" al "25 agosto alle 21:00"?
maggio

1
L'OP non ha chiesto intervalli di tempo.
ewwhite,

1
@ewwhite l'espressione mi sembra bellissima, se non ti piace l'aspetto della sintassi bash, questo potrebbe non essere il sito adatto a te.
ekerner,

1
@ekerner Hai ragione. Vado da qualche altra parte;)
ewwhite
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.