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 lastpossa 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 usernamee quindi reindirizzare il whileloop 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.
lastcomando - ma dovresti fare più ricerche di così, e in ogni caso, non hai ancora specificato perché illastcomando non è utile. inoltre, definire "accesso". vuoi tenere traccia degli accessi alla console? Login SSH? Emacs vietare,telnetaccessi? o semplicemente qualcosa di autenticazione con PAM? sii specifico .