Estou usando este comando simples para monitorar conexões (para lidar com alguns ataques recentes de DoS) no meu servidor Debian:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Como faço para executá-lo continuamente? Portanto, ele será atualizado 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 mudou a saída da lista legal com o 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. Há algo que eu perdi?
É assim que a saída original se 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]
quero dizer o IP da minha máquina.
Quando eu corro com -c
ele apenas congela.
Respostas:
pode ajudá-lo se eu não entendi mal o seu problema. -c significa --continuous.
EDIT: lá vai você:
Eu adicionei um \ antes de $.
fonte
Basta executar um loop while que dorme por 60 segundos
Isso fornecerá a mesma saída a cada 60 segundos
fonte