Obtendo informações do syslog.txt

0

Estou procurando alguns comandos interessantes que eu possa usar para extrair informações de um syslog. Principalmente usando isso como uma experiência de aprendizado. Digamos que eu tenha um syslog mostrando conexões descartadas / aceitas através do meu firewall. Digamos que eu queira saber qual endereço de origem está sendo descartado / aceito mais. Formato do syslog parece algo como:

Feb 12 09:00:57 kernel: DROP  <4>DROP IN=eth0 OUT= MAC=d8:50:e6:a9:29:e0:00:ab:cd:ef:gh:ij:kl:mn <1>SRC=12.34.56.78 DST=87.65.43.21 <1>LEN=160 TOS=0x00 PREC=0x00 TTL=43 ID=0 DF PROTO=UDP <1>SPT=51413 DPT=1024 LEN=140

De preferência, uma maneira de descobrir quantas entradas únicas cada SRC tinha em meu syslog, algo que mostraria cada entrada de SRC do syslog junto com quantas vezes o mesmo evento ocorreu:

(source address) | (number of entries)
12.34.56.78 | 25
12.34.56.79 | 13
12.23.34.45 | 6
12.32.32.34 | 1

Algum comando legal que alguém compartilharia?

    
por Mr. Monkey 12.02.2014 / 17:27

1 resposta

1

Você viu grep ? que procura padrões de string ou até less para ver / página / pesquisar interativamente em um terminal.

Se você quiser contar linhas, então grep tem uma opção de contagem (-c) outro truque comum é canalizar a saída em wc (contagem de palavras) que também pode contar as linhas de saída do grep.

Suponha que você queira encontrar o DROP

grep -c DROP syslog | sed -e s'/^.*SRC=//' -e 's/DST=.*$//' |sort -n |uniq -c |sort -nr

As contagens estão no começo.

    
por 12.02.2014 / 17:31

Tags