Solución 1:
Puedes probar el last
comando:
last john
Imprime el historial de inicio/salida del usuario john. Mientras que correr solo
last
imprime el historial de inicio/cierre de sesión de todos los usuarios.
Solución 2:
Si necesita retroceder más de un mes en la historia, puede leer el /var/log/wtmp.1
archivo con el last
comando.
last -f wtmp.1 john
mostrará el historial de inicios de sesión del mes anterior para el usuario john
.
La última salida del registro no es demasiado pesada y relativamente fácil de analizar, por lo que probablemente canalizaría la salida a grep para buscar un patrón de fecha específico.
last john | grep -E 'Aug (2[0-9]|30) '
para mostrar del 20 al 30 de agosto. O algo como:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
para adquirir del 10 al 30 de julio para el usuario john
.
Solución 3:
¿Cómo extraer el historial de inicio de sesión para un rango de fechas específico en Linux?
Un ejemplo para enumerar todos los inicios de sesión de los usuarios del 25 al 28 de 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 }'
para extraer la fecha y hora en la columna correspondiente delast
salida+%s
para convertir la fecha y hora a la hora de Época-ge
significa mayor que o igual-le
representa menor o igual
También puede hacerlo para un usuario específico con last <username>
.