Respuestas:
Los registros de inicio de sesión en redhat-style linux se llaman wtmp
( man wtmp
), se almacenan /var/log/
de forma predeterminada y puede recuperarlos usando utmpdump
(en 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]
...
Parece que last
puede usarse para lograr lo que está tratando de hacer. Debe agregar la fecha al último comando para extraer la información.
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
Sin embargo, si le preocupa encontrar información sobre un usuario en particular, puede modificar el último comando como last username
y luego canalizar el while
bucle hacia él. Le daría la información de inicio de sesión de un usuario particular durante el último año.
Probé el comando anterior y funciona perfectamente bien en mi sistema. Tomé el comando anterior desde aquí .
Puede cambiar la fecha en el comando para satisfacer sus requisitos.
last
comando, pero deberías investigar más que eso, y en cualquier caso, en realidad no has especificado por qué ellast
comando no es útil. también, defina "conectado". ¿Quieres rastrear los inicios de sesión de la consola? SSH inicios de sesión? ¿Emacs no lo permite,telnet
inicios de sesión? o simplemente cualquier cosa que se autentique con PAM? Se específico .