Caso contrário, para conexão estabelecida

0

Como modifico esse teste de tal forma que, se o número de conexões para a porta 1234 for maior que 10, execute um comando (como echo something)?

[[ $(netstat -tan | awk '/:1234/ && /ESTABLISHED/{n++} END {print n+0}') = 2 ]

pode ser apenas =10 e, se for mais, irá para else ?

[[ $(netstat -tan | awk '/:1234/ && /ESTABLISHED/{n++} END {print n+0}') = 10 ]

ou existe alguma outra maneira?

Este é o meu script completo

#!/bin/bash
servers=( "1.1.1.1" "2.2.2.2" "3.3.3.3" )
param=( 1 2 3 )

n=0

for i in "${servers[@]}"; do

ping -c 1 $i > /dev/null
if [ $? -eq 0 ]; then
   snmptrap -v 2c -c public .... ${param[$n]}
fi
let $((n+=1))
done
if [[ $(netstat -tan | awk '/:3708/ && /ESTABLISHED/{n++} END {print n+0}') = 2 ]] ; then
    #echo "conn ok"
snmptrap -v 2c -c public ...
fi
if [[ $(netstat -tan | awk '/:1234/ && /ESTABLISHED/{n++} END {print n+0}') -gt 10 ]] ;   then
#echo "test"
snmptrap -v 2c -c public ...
fi

Esta é a saída da execução com bash -x

++ netstat -na
++ grep :1234
++ grep ESTABLISH
++ wc -l
+ '[' 13 -gt 10 ']'
    
por Goro 26.11.2014 / 13:22

1 resposta

1

Tente desta maneira:

if [[ VAR=$(netstat -tan | awk '/:1234/ && /ESTABLISHED/{n++} END {print n+0}') -gt 2 ]]; then echo $VAR; fi

    
por 26.11.2014 / 13:49

Tags