Oi tallescss, dê uma olhada no script abaixo e veja se ele te ajuda, #!/bin/bash if [ $# -lt 2 ]; then echo 'Uso: $0 <Menor Porta> <Maior Porta>' else MIN=$1 MAX=$2 if [ $MIN -ge 1 ] && [ $MAX -le 65535 ]; then netstat -tcp -an | egrep -v "^Active|^Proto" | awk -F: '{ print $2 }' | awk -v min="$MIN" max="$MAX"'{if (($1>=min)&&($1<=max)) print $1}' else echo "Valores devem ser entre 1 e 65535" fi fi
Abs, André On 9/23/07, tallescss <[EMAIL PROTECTED]> wrote: > > > > > > > Preciso fazer um script que: > > " Verifique em um intervalo de valores cujos valores inicial e final > sejam no mínimo 1 e no máximo 65535, quais portas do TCP ou UDP estão > sendo usadas por algum serviço da máquina. Sabe-se que estes números > de porta estão listados no arquivo /etc/services. > O possível lixo de execução de comandos no script não deve ser exibido > na tela. > Se digitarmos na linha de comando: > ./verportas 25 30 > Poderíamos ter como resposta: > Portas usadas no momento pelos servicos: > 25 > 26 > 28 > 29" > > Pensei em fazer usando netstat -tcp -an e awk -F. '{$4 "." $3 "." $2 > "." $1}' pra quebrar o resultado do netstat em blocos e pegar o bloco > equivalente a porta que está sendo usada e com esse resultado usar o > grep pra procurar no arquivo services o protocolo que usa ela. > > Mas não consegui, to indo pelo caminho certo? Tem outro modo de realizar? > > -- ------------------------------------ André Marques Saunite e-mail/MSN: [EMAIL PROTECTED] Linux User - 308676 ------------------------------------