onehourago=$(date --date='1 hours ago' +"%b%e %H:%M:%S")
echo $onehourago | cat /var/log/auth.log - | sort | sed "1,/$onehourago/d"
Saída intermediária sem o comando sed:
Aug 7 00:00:03 thinkpux CRON[25475]: pam_unix(cron:session): session closed for user stefan
Aug 7 00:17:01 thinkpux CRON[25504]: pam_unix(cron:session): session closed for user root
Aug 7 00:17:01 thinkpux CRON[25504]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 7 00:19:33
Aug 7 01:00:02 thinkpux CRON[25652]: pam_unix(cron:session): session opened for user stefan by (uid=0)
Aug 7 01:00:03 thinkpux CRON[25652]: pam_unix(cron:session): session closed for user stefan
Aug 7 01:17:01 thinkpux CRON[25885]: pam_unix(cron:session): session closed for user root
Aug 7 01:17:01 thinkpux CRON[25885]: pam_unix(cron:session): session opened for user root by (uid=0)
Saída:
Aug 7 01:00:02 thinkpux CRON[25652]: pam_unix(cron:session): session opened for user stefan by (uid=0)
Aug 7 01:00:03 thinkpux CRON[25652]: pam_unix(cron:session): session closed for user stefan
Aug 7 01:17:01 thinkpux CRON[25885]: pam_unix(cron:session): session closed for user root
Aug 7 01:17:01 thinkpux CRON[25885]: pam_unix(cron:session): session opened for user root by (uid=0)
Nota: Primeiro eu construí a data com + "% b% e% H:% M:% S" (note o espaço entre% be% e, mas echo comprime dois espaços em um. Pesquisando por sed parece para procurar dois espaços em branco e não encontrar a expressão, por isso é de alguma forma complicado distinguir se o dia do mês tem dois ou um dígito.No entanto, o tipo parece agnóstico sobre o espaço em branco / faltante.Talvez haja um bash-switch para impedir a compressão? No entanto - o seu formato de data é diferente e assim você não será afetado, mas eu tive que testar essa abordagem de alguma forma, e os alunos podem entrar na mesma armadilha.
Portanto, a idéia geral é, para obter a data / hora de 1 hora atrás, formatá-la como no arquivo de log, adicionar a data pura ao arquivo de log e classificar essa mistura e excluir com sed até a data pura.
Não é engraçado lembrar e digitar, mas você pode colocá-lo em um script e / ou função.