Respuestas:
Puedes probar el lastcomando:
last john
Imprime el historial de inicio de sesión / salida del usuario john. Mientras que correr solo
last
imprime el historial de inicio de sesión / salida de todos los usuarios.
Si necesita retroceder más de un mes en el historial, puede leer el /var/log/wtmp.1archivo con el lastcomando.
last -f wtmp.1 johnmostrará el historial de inicios de sesión del mes anterior para el usuario john.
El último resultado del registro no es demasiado pesado y relativamente fácil de analizar, por lo que probablemente canalizaría el resultado 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) 'adquirir del 10 al 30 de julio para el usuario john.
¿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 usuarios que inician sesión del 25 al 28 / 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 de la lastsalida+%s para convertir la fecha y la hora en la época-ge significar mayor o igual-le representar menos o igualTambién puede hacerlo para usuarios específicos con last <username>.
lastsalida es bastante legible?
grepdel "15 de agosto a las 09:00" al "25 de agosto a las 21:00"?