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
