टीओसी:
- बैश और का उपयोग करना
timeout
- का उपयोग करते हुए
nc
- आदेश
- आरएचईएल 6 (एनसी 1.84)
- आरएचईएल 7 (एनएएमपी-एनसीएटी-6.40)
- टिप्पणियों
बैश का उपयोग करना और timeout
:
ध्यान दें कि timeout
आरएचईएल 6+ के साथ मौजूद होना चाहिए, या वैकल्पिक रूप से जीएनयू कोर्यूटिल्स 8.22 में पाया जाता है। MacOS पर, इसका उपयोग करके इंस्टॉल brew install coreutils
करें और इसे इस रूप में उपयोग करें gtimeout
।
कमान:
$ timeout $TIMEOUT_SECONDS bash -c "</dev/tcp/${HOST}/${PORT}"; echo $?
यदि होस्ट और पोर्ट को पैरामीट्रिक करते हैं, तो उन्हें ऊपर ${HOST}
और नीचे निर्दिष्ट करना सुनिश्चित करें ${PORT}
। उन्हें केवल $HOST
और केवल $PORT
ब्रेसिज़ के बिना निर्दिष्ट न करें ; यह इस मामले में काम नहीं करेगा।
उदाहरण:
सफलता:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/80"; echo $?
0
विफलता:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
124
यदि आपको बाहर निकलने की स्थिति का संरक्षण करना चाहिए bash
,
$ timeout --preserve-status 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
143
का उपयोग कर nc
:
ध्यान दें कि nc
RHEL 7 पर एक पिछड़ा असंगत संस्करण स्थापित हो जाता है।
कमान:
ध्यान दें कि नीचे दी गई कमांड अद्वितीय है कि यह RHEL 6 और 7. दोनों के लिए समान है। यह सिर्फ स्थापना और आउटपुट है जो अलग-अलग हैं।
$ nc -w $TIMEOUT_SECONDS -v $HOST $PORT </dev/null; echo $?
आरएचईएल 6 (एनसी 1.84):
स्थापना:
$ sudo yum install nc
उदाहरण:
सफलता:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Connection to canyouseeme.org 80 port [tcp/http] succeeded!
0
विफलता:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
nc: connect to canyouseeme.org port 81 (tcp) timed out: Operation now in progress
1
यदि होस्टनाम कई आईपी में मैप करता है, तो उपरोक्त विफलता कमांड कई या सभी के माध्यम से चक्र करेगा। उदाहरण के लिए:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
1
आरएचईएल 7 (एनएएमपी-एनसीएटी-6.40):
स्थापना:
$ sudo yum install nmap-ncat
उदाहरण:
सफलता:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 52.202.215.126:80.
Ncat: 0 bytes sent, 0 bytes received in 0.22 seconds.
0
विफलता:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection timed out.
1
यदि होस्टनाम कई आईपी में मैप करता है, तो उपरोक्त विफलता कमांड कई या सभी के माध्यम से चक्र करेगा। उदाहरण के लिए:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection to 104.43.195.251 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.100.122.175 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.96.52.53 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 191.239.213.197 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection timed out.
1
टिप्पणियों:
-v
( --verbose
) तर्क और echo $?
आदेश केवल व्याख्या के लिए निश्चित रूप से कर रहे हैं।