Tente isto:
#!/bin/bash
value=1 # to be defined
egrep "invalid|password" file |
egrep -v "Accepted|preauth" |
awk '{print $13}' |
sort |
uniq -c |
while read -r num ip; do
if ((num > value)); then
doSomethingWith "$ip"
fi
done
Eu tenho uma saída como mostrado abaixo. Meu plano é pegar a primeira coluna e fazer uma declaração if maior que n valor ela vai pegar a segunda coluna do IP e soltar a conexão. Alguém pode me orientar sobre qual é a melhor abordagem.
cat file| egrep "invalid|password" | egrep -v "Accepted|preauth" | awk '{print $13}' |sort | uniq -c
6 61.177.172.35
4083 61.177.172.22
3 69.28.94.192
10 80.2.33.180
Eu posso extrair a primeira coluna e fazer a declaração if, mas não sei como atribuir o valor a um IP correspondente.
Tente isto:
#!/bin/bash
value=1 # to be defined
egrep "invalid|password" file |
egrep -v "Accepted|preauth" |
awk '{print $13}' |
sort |
uniq -c |
while read -r num ip; do
if ((num > value)); then
doSomethingWith "$ip"
fi
done