2014-06-13 27 views
9

hızlı bir soru aldı.netcat timeout çalışmıyor.

Bağlanma girişimi 3 saniyeden uzun sürüyorsa (ör: bağlantı noktası açık değilken) aşağıdaki netcat komutu neden zaman aşımına uğramıyor? -W bayrağı ihtiyacım olan şey olurdu. İşletim sistemi OSX 10.9.

nc -v -z -w 3 127.0.0.1 5050

o çalışmış varsayarsak, böyle (emin bu çalışacaktır eğer, toplam bash Noob) uygulamaya herhangi bir yardım için

nc -v -z -w 3 127.0.0.1 5050 | /dev/null && echo "Online" || echo "Offline"

Şerefe planlanan!

+0

Denediğimde, bağlantı noktası açık olmadığı için hemen bir hata yanıtı alıyorum. Ev sahibinizde açık olmadığından emin misiniz? Eğer öyleyse, bu yüzden zaman aşımına uğramaz, çünkü aslında bağlanır. – CDahn

+0

Garip, sadece belirli bir bağlantı noktasında oluyor gibi görünüyor ... Bunu makinemde uzak bir konumdan veya ağdan belirli bir hizmet çalışıyorsa izlemek için kullanıyorum. Bu servis şu anda çalışmıyor, ancak netcat zaman aşımına uğramıyor gibi görünüyor, süreç sadece kilitleniyor. Düşüncesi olan var mı? – anditpainsme

+0

Herhangi bir güvenlik duvarı çalıştırıyor musunuz? "Iptables -L" ne gösteriyor? – CDahn

cevap

15

Buraya/dev/null değerine yönlendirmeli, ona boru eklemelisiniz. Aşağıdaki deneyin: Benim makinede

nc -v -z -w 3 127.0.0.1 5050 &> /dev/null && echo "Online" || echo "Offline" 

, liman 5050 açık değildir ve aşağıdaki alıyorum:

$ nc -v -z -w 3 localhost 5050 &> /dev/null && echo "Online" || echo "Offline" 
Offline 
+1

Bunun için teşekkürler! Merak etme neden & yönlendirirken ne zaman gereklidir? – anditpainsme

+1

nc, gerçek çıktıyı stderr'e gönderir, bu nedenle "Çevrimiçi" ve "Çevrimdışı" seçeneklerini görmek isterseniz, & st komutunu hem stdout hem de stderr/dev/null dizinine yönlendirmek için &> komutunu kullanmanız gerekir. -v'den kurtulursanız, sadece nc -z -w 3 localhost 5050 && echo "Çevrimiçi" diyebilirsiniz. echo "Çevrimdışı" – CDahn

+0

Serin, bilmek güzel. Teşekkürler. – anditpainsme

İlgili konular