Respuestas:
Puedes probar el last
comando:
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.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
.
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 last
salida+%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>
.
last
salida es bastante legible?
grep
del "15 de agosto a las 09:00" al "25 de agosto a las 21:00"?