Risposte:
I log di login su Linux in stile redhat sono chiamati wtmp
( man wtmp
), memorizzati /var/log/
per impostazione predefinita, e puoi recuperarli usando utmpdump
(su RHEL6).
[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root ] [pts/3 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root ] [pts/0 ] [192.168.1.100 ] [192.168.1.100 ] [Fri Sep 27 21:33:40 2013 UTC]
...
Sembra che last
possa essere usato per ottenere ciò che stai cercando di fare. È necessario aggiungere la data all'ultimo comando per estrarre le informazioni.
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
Tuttavia, se ti interessa trovare informazioni su un determinato utente, puoi modificare l'ultimo comando come last username
e quindi reindirizzare il while
loop ad esso. Ti fornirebbe le informazioni di accesso di un determinato utente per l'ultimo anno.
Ho testato il comando sopra e funziona perfettamente nel mio sistema. Ho preso il comando sopra da qui .
È possibile modificare la data nel comando in base alle proprie esigenze.
last
comando - ma dovresti fare più ricerche di così, e in ogni caso, non hai ancora specificato perché illast
comando non è utile. inoltre, definire "accesso". vuoi tenere traccia degli accessi alla console? Login SSH? Emacs vietare,telnet
accessi? o semplicemente qualcosa di autenticazione con PAM? sii specifico .