2009/9/17 Ionel Mugurel Ciobica <[email protected]>:
> O intrebare scurta, exista o metoda mai buna de a testa daca un tunel
> ssh este activ sau nu decit netstat:
>
> if [ `netstat -nt | grep 127.0.0.1:10022 | wc -l` == '0' ] ; then
>   echo "SSH tunnel is not up."
> else
>   echo "SSH tunnel is OK."
> fi

Putin offtopic (nu-mi dau seama exact care e problema, asa ca nu ma
pronunt pe partea de tunel), la teste de genul asta poti sa mai tai
din pipes, nu se stie cand o sa te ajute ca performanta, ca de ex. in
conditii de load mare dureaza mai mult forkurile.

De exemplu:

`comanda | grep 'spanac' | wc -l` poate fi inlocuit cu `comanda | grep
-c 'spanac'`

Si mai bine:

[ `comanda | grep -c 'spanac'` -ne 0 ] poate fi inlocuit cu comanda |
grep -q spanac (grep -q are exit code 0 daca gaseste ceva, nu mai ai
nevoie de [ care poate fi comanda externa, in functie de shell)
(atentie ca == nu e operator acceptat de nici de /usr/bin/[ nici de
comanda interna de bash si oricum e mai bine sa folosesti -eq si -ne
pentru comparatii de numere)

Si chiar si mai bine:
In cazul netstat, ala se uita prin /proc/net/tcp, poti da tu grep sau
awk direct acolo, gen :
grep -q '0100007F:2726' /proc/net/tcp && echo 'merge' || echo 'nu merge'

Atentie ca in cazul daemonilor care stiu si de ipv6 trebuie sa te uiti
si prin /proc/net/tcpv6.

HTH,
-- 
Petre "don't thread on me" Ratiu

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui