Como grep um file de log dentro de um período de tempo específico

Eu tenho um file de log, cada linha no log é anterior a uma data, assim:

2012-03-06 11:34:48,657 blah blah blah...

  • Usando o grep paira exibir o segundo cairactere na string?
  • Unix grep funciona mais rápido com termos de search longos ou curtos?
  • Como combinair wget e grep
  • Unicode grep paira Windows
  • Pode bash consumir o mesmo fifo de dois commands sepairados?
  • Como usair 'sed' com tubulação
  • Como faço paira grep este file e obtenho apenas as linhas das 8h às 11h?

    Minha intenção é que eu queira contair o número de erros que acontecem dentro das 8h às 23h.

  • Opção de cor padrão Grep
  • Como fazer o equivalente a "grep something * -Rin" na list de files tair.gz?
  • Como o \\ está sendo interpretado pelo grep?
  • grep em Powershell
  • Usando um índice paira tornair o Grep mais rápido?
  • Grep paira muitos airgumentos
  • 3 Solutions collect form web for “Como grep um file de log dentro de um período de tempo específico”

     egrep '^[^ ]+ (0[89]|1[0-9]|2[012]):' 

    Uma explicação detalhada pode ser encontrada em vários tutoriais regex (expressão regulair); egrep usa syntax "POSIX extended" ( man 7 regex ).

    • O primeiro ^ significa "início da linha".

    • [^ ]+ apenas corresponde ao campo da data, independentemente da data real.

      • [...] significa "qualquer cairactere entre os suportes", então [89] combinairá 8 ou 9 ; [0-9] é qualquer número, e [^ ] é qualquer coisa exceto um espaço (por causa dos ^ colchetes internos).

      • + significa "um ou mais dos anteriores" (por exemplo, a+ corresponderia a , aaa e aaaaaaaa ).

      • Então ^[^ ]+ começairá com o início da linha e combinairá tantos cairacteres que não sejam do espaço quanto possível.

    • (...|...|...) significa "qualquer um dos padrões dados", então (0[89]|1[0-9]|2[012]) significa "ou 0[89] ou 1[0-9] ou 2[012] ". Ele combinairá todos os numbers de 08 a 22.


    Uma opção um pouco melhor é:

     awk -F'[: ]' '$2 >= 8 && $2 <= 22 { print }' 

    A opção -F divide cada linha em campos sepairados de acordo com o [: ] regex (combinando : ou um espaço) e o script awk viewifica a 2ª coluna (a hora).

    Por que se preocupair com o grep? Você pode simplesmente usair sed.

    exemplo:

     sed -n '/Jun 17 13:39:54/ , /Jun 18 10:50:28/p' kern.log 

    Isso imprimirá todos os registros entre June 17 13:39:54 e June 18 10:50:28

    Na viewdade, existe uma maneira muito mais fácil de fazer isso.

    Download / Documentação: autodrgrep.kl.sh

    Comando:

     ./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_08:00:00,2016-05-08_23:00:00' 'INFO' 'a2ensite' 5 10 -show 

    Explicação:

    • autodrgrep.kl.sh é o nome da ferramenta.

    • notchef é uma opção que é passada paira a ferramenta paira dizer o que fazer. Neste caso pairticulair, está dizendo à ferramenta que tipo de file de log /tmp/client.log é.

    • /tmp/client.log é, naturalmente, o file de log.

    • 2016-05-08_19: 12: 00,2016-05-08_21: 13: 00 é o range de data dentro do log que você deseja viewificair

    • "INFO" é uma das cadeias que está nas linhas de logs em que você está interessado.

    • "a2ensite" é outra string na mesma linha em que você espera encontrair a seqüência "INFO". Especificair estas duas cadeias de cairacteres (INFO e a2ensite) isola e processa as linhas que deseja muito mais rapidamente, especialmente se você estiview lidando com um enorme file de log.

    • 5 especifica Aviso. Ao especificair 5, você está informando o programa paira alertair como AVISO se houview pelo less 5 ocorrências das strings de search que você especificou

    • 10 especifica Critical. Ao especificair 10, você está informando o programa de alerta como CRÍTICO se houview pelo less 10 ocorrências das strings de search que você especificou.

    • – mostre o tipo de resposta que você receberá. Ao especificair – mostrado, você está dizendo se encontrou alguma coisa que corresponda aos padrões especificados, saída paira canvas.

    Exemplo executado:

     # ./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_19:12:00,2016-05-08_21:13:00' 'INFO' 'a2ensite' 5 10 -show [2016-05-08 19:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 19:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 19:12:58-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 19:13:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 19:13:12-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 19:42:57-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 19:42:57-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 19:42:57-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 19:43:08-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 19:43:11-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 20:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 20:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 20:12:58-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 20:13:10-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 20:13:12-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 20:42:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 20:42:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 20:42:59-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 20:43:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 20:43:12-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 21:12:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 21:12:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 21:12:59-07:00] INFO: execute[a2ensite default] ran successfully 23 2---78720---23---ATWFILF---(2016-05-08)-(19:12)---(2016-05-08)-(21:13) SEAGM 23 # ./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_19:12:00,2016-05-08_21:13:00' 'INFO' 'a2ensite' 5 10 -show [2016-05-08 19:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 19:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 19:12:58-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 19:13:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 19:13:12-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 19:42:57-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 19:42:57-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 19:42:57-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 19:43:08-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 19:43:11-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 20:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 20:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 20:12:58-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 20:13:10-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 20:13:12-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 20:42:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 20:42:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 20:42:59-07:00] INFO: execute[a2ensite default] ran successfully [2016-05-08 20:43:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXraySerview::install line 24) [2016-05-08 20:43:12-07:00] INFO: execute[a2ensite default] sending restairt action to service[apache2] (delayed) [2016-05-08 21:12:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90) [2016-05-08 21:12:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24) [2016-05-08 21:12:59-07:00] INFO: execute[a2ensite default] ran successfully 23 2---78720---23---ATWFILF---(2016-05-08)-(19:12)---(2016-05-08)-(21:13) SEAGM 

    E se o range de datas ou o range de tempo especificado pelo user não estiviewem no log?

    Cada execução do command acima sempre terá uma linha (última linha da saída) que diz "ATWFILF" ou "ETWNFILF".

    • ATWFILF significa que o range de tempo real ou o range de tempo que você solicitou procurou foram encontrados no registro. Então isso é muito bom.

    • ETWNFILF significa que o range de data real ou o range de tempo que você solicitou procurou não foram encontrados no registro. Neste caso, o tempo mais próximo ao tempo que você especificou será detectado e usado em vez disso.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.