SORU
7 ŞUBAT 2011, PAZARTESİ


Uzaktan TCP port eğer kabuk betiği Test açın.

Doğru ise, belirli bir TCP bağlantı noktası uzak bir sunucu, bir Kabuk içinden üzerinde açık olup olmadığını test etmek için hızlı ve basit bir yöntem arıyorum.

Telnet komutu ile bunu başardım ve liman açıldığında gayet iyi çalışıyor, ama sadece orada asılı değil zaman aşımı yok gibi görünüyor

İşte bir örnek:

l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
  echo "Connection to $SERVER on port $PORT failed"
  exit 1
else
  echo "Connection to $SERVER on port $PORT succeeded"
  exit 0
fi

Ben de bir iyi bir yol, ya da bir şekilde zorla telnet için zaman aşımı vermezse Bağlan altında 8 saniye için örnek ve iade edebileceğim bir şey yakalamak Kabuk (dönüş kodu veya dize stdout).

IO kullanan Perl yöntemi biliyorum::Socket::INET ve bir bağlantı noktası testleri başarılı bir betik modülü yazdım ama mümkünse Perl kullanarak önlemek için tercih.

Not: Bu benim server çalıştıran bu gitmem gereken yere oldukça önemlidir

SunOS 5.10 Generic_139556-08 i86pc i386 i86pc

Herhangi bir yardım mutluluk duyacağız!

CEVAP
27 ŞUBAT 2012, PAZARTESİ


B. tarafından işaret olarak Rodos, nc iş yapacak. Daha kompakt bir şekilde kullanmak için:

nc -z <host> <port>

Bu şekilde nc sadece port açmak, başarı 0, 1 hatası ile çıkılıyor olup olmadığını kontrol edin.

Hızlı etkileşimli bir kontrol edin (5 saniye timeout):

nc -z -w5 <host> <port>; echo $?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 99being99

    99being99

    2 EYLÜL 2008
  • bmarian22

    bmarian22

    22 Aralık 2007
  • kylediablo

    kylediablo

    8 Ocak 2007