Respostas:
Você pode tentar o last
comando:
last john
Imprime o histórico de login / saída do usuário john. Considerando que correr apenas
last
imprime o histórico de login / logout de todos os usuários.
Se você precisar voltar no histórico mais de um mês, poderá ler o /var/log/wtmp.1
arquivo com o last
comando
last -f wtmp.1 john
mostrará o histórico de logins do mês anterior para o usuário john
.
A última saída do log não é muito pesada e é relativamente fácil de analisar, portanto, provavelmente canalizaria a saída para grep para procurar um padrão de data específico.
last john | grep -E 'Aug (2[0-9]|30) '
para mostrar de 20 a 30 de agosto. Ou algo como:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
adquirir de 10 a 30 de julho para o usuário john
.
Como extrair o histórico de login para um período específico no Linux?
Um exemplo para listar todos os usuários que efetuam login de 25 a 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 }'
extrair a data e hora na coluna correspondente da last
saída+%s
converter data e hora em época da época-ge
representam maior ou igual-le
representa menos ou igualVocê também pode fazer isso para um usuário específico com last <username>
.
last
saída é bastante legível?
grep
de "15 de agosto às 09:00" e "25 de agosto às 21:00"?