[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] shell que lista as portas ativas
From: |
Julio Cezar Neves - DISB.O |
Subject: |
RES: [shell-script] shell que lista as portas ativas |
Date: |
Sun, 18 Jun 2000 18:23:17 -0300 |
> ----- Mensagem original -----
> De: Anderson Montenegro
> [SMTP:address@hidden]
> Enviada em: quarta-feira, 14 de junho de 2000 10:25
> Para: address@hidden
> Assunto: [shell-script] shell que lista as portas ativas
>
>
>
> eu criei um pequeno shell que lista se a porta 80 esta ativa no meu
> linux
> que e o seguinte:
>
> netstat -an | grep LIST | grep 80 | cut -d: -f2 | awk ' { print $1 }´
>
> so que eu queria fazer esse script ficar mais amigavel.
>
> Entao criei o script abaixo so que ele nao esta funcionando
>
>
> #!/bin/sh
>
> PORTAS="/usr/sbin/netstat -an | grep LIST | grep 80 | cut -d: -f2 | awk
> '
> { print $1 }´
>
Na linha acima, vc esta fazendo uma etribuição e um comando, só que
o comando tem que ser executado antes da atribuição ser feita. Para
priorizarmos o comando, devemos colocá-lo entre crases (`), e não aspas (")
ou apóstrofos ('). Assim a sua linha deveria ficar da seguinte maneira:
PORTAS=`/usr/sbin/netstat -an | grep LIST | grep 80 | cut -d: -f2
| awk '{ print $1 }´`
> if [ $PORTAS=="80" ] then
>
Em bash ou sh não se usa == dentro de um if. Isto é típico do csh ou
da linguagem C. Por outro lado, vc poderia usar o operador de comparação
numérica (-eq) e não o de strings (=). Proponho, então, que a linha do if
fique assim:
> if [ "$PORTAS" -eq 80] then
ou assim:
> if [ "$PORTAS" = "80" ] then
>
ou então otimizando o script ao máximo:
> if [ `/usr/sbin/netstat -an | grep LIST | grep 80 | cut -d: -f2 | awk
> '{ print $1 }´` -eq 80] then
> echo " a porta 80 esta ativa "
> else
> echo " a porta 80 nao esta ativa"
> fi
>
[]s,
Julio
<mailto:address@hidden>
- RES: [shell-script] shell que lista as portas ativas,
Julio Cezar Neves - DISB.O <=