Atualização contínua do Netstat (o relógio altera a saída)

13

Estou usando este comando simples para monitorar conexões (para lidar com alguns ataques DoS recentes) no meu servidor Debian:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Como posso executá-lo continuamente? Então ele se atualizará uma vez por minuto (ou qualquer quantidade de tempo, é claro). Eu tentei assistir:

watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n"

Mas isso mudou a saída da lista legal com um número de conexões para algo assim:

1 tcp        0  10015 [LOCAL IP]
...
1 Proto Recv-Q Send-Q Local Address           Foreign Address         State
1 Active Internet connections (w/o servers)

Portanto, o IP externo não está sendo exibido. Existe algo que eu perdi?

Assim é como a saída original parece:

  2 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  7 [IP ADDRESS]
 16 [IP ADDRESS]
 71 [IP ADDRESS]

E quando digo [LOCAL IP] , refiro-me ao IP da minha máquina.

Quando eu executo com -c , apenas congela.

    
por Ruslan Osipov 12.06.2012 / 15:13

2 respostas

18
netstat -c

pode ajudá-lo se não entendi mal o seu problema. -c significa --continua.

EDITAR: lá vai você:

watch -n 30 "netstat -ntu | awk '{print \}' | cut -d: -f1 | sort | uniq -c | sort -n"

Eu adicionei um \ antes de $.

    
por 12.06.2012 / 15:35
1

Basta executar um loop while que dura 60 segundos

[root@host] $ while true
> do
> netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
> sleep 60
> done

Isso fornecerá a mesma saída a cada 60 segundos

    
por 28.03.2016 / 23:14