Eu preciso saber o histórico de login para um usuário específico (ou seja, tempo de login e logout), como faço para extrair esse histórico para um intervalo de datas específico no Linux?
Se você precisar voltar mais de um mês na história, poderá ler o /var/log/wtmp.1arquivo com o lastcomando.
last -f wtmp.1 johnmostrará o histórico de logins do mês anterior para o usuário john.
A última saída de log não é muito pesada e relativamente fácil de analisar, então eu 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) 'para adquirir de 10 a 30 de julho para o usuário john.
Você pode tentar o
last
comando:Ele imprime o histórico de login/out do usuário john. Considerando que correr apenas
imprime o histórico de login/out de todos os usuários.
Se você precisar voltar mais de um mês na história, poderá ler o
/var/log/wtmp.1
arquivo com olast
comando.last -f wtmp.1 john
mostrará o histórico de logins do mês anterior para o usuáriojohn
.A última saída de log não é muito pesada e relativamente fácil de analisar, então eu 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) '
para adquirir de 10 a 30 de julho para o usuáriojohn
.Um exemplo para listar todos os logins de usuários de 25 a 28/ago:
awk '{ print $5" "$6" "$7 }'
para extrair a data e hora na coluna correspondente dalast
saída+%s
para converter data e hora em hora da época-ge
significa maior ou igual-le
significar menor ou igualVocê também pode fazer isso para um usuário específico com
last <username>
.