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 delastsalida+%spara convertir la fecha y hora a la hora de Época-gesignifica mayor que o igual-lerepresenta menor o igual
También puede hacerlo para un usuario específico con last <username> .