On Sat 02 May 2009 13:48:52 Daniel Venturi wrote:
> Boa tarde pessoal
> Meu problema é o seguinte estou alterando as portas de maneira aleatória, e
> preciso saber se a porta que eu estou escolhendo já está sendo utilizada,
> para poder escolher outra, por exemplo
>
> se porta_escolida = livre
>         return true
> senão
>         return false

Bom,

se estiver usando shell-script algo como isso aqui (abaixo) talvez ajude a 
encontrar o caminho correto:

$ sh test.sh 631
porta 631 ja esta em uso!

$ sh test.sh 22
OK, porta 22 esta livre.


O codigo 'e esse aqui:

$ cat test.sh
#!/bin/sh

TEST=$1

if [ $# != 1 ]; then
  echo "ERRO: parametro necessario (porta) nao informado!"
  exit 1
fi

LISTEN=(`netstat -nl | grep : | grep -E 'tcp|udp' | \
  sed -r 's/.+:([0-9]+).+/\1/g' | awk '{print $1}' | sort -u`)

CTRL=0

for PORT in ${!LISTEN[*]}; do
  if [ ${LISTEN[${PORT}]} == ${TEST} ]; then
    echo "porta ${LISTEN[${PORT}]} ja esta em uso!"
    CTRL=1
    break
  fi
done

if [ ${CTRL} == 0 ]; then
  echo "OK, porta ${TEST} esta livre."
fi


Com certeza existe alguma solucao MUITO mais simples que essa, mas fica como 
opcao em shell-script.

Para fazer retornar true ou false adapte o script p/ retornar 0 ou 1 no status 
do exit.

Ate,

--
Herbert

--~--~---------~--~----~------------~-------~--~----~
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br

Antes de perguntar:
http://www.istf.com.br/perguntas/

Para sair da lista envie um e-mail para:
[email protected]
-~----------~----~----~----~------~----~------~--~---

Responder a