मैं कैसे जांच सकता हूं कि ssh / script एक्सेस के लिए एक दूरस्थ कंप्यूटर ऑनलाइन है?


12

मैं एक स्क्रिप्ट लिख रहा हूं जो मेरे लैपटॉप से ​​उबंटू सर्वर पर डेटा बैकअप देगा। ऐसा करने के लिए, मैं परीक्षण करने के लिए सर्वर के बैकअप उपलब्ध होने से पहले उपलब्ध होने के लिए (ba) sh कमांड की तलाश कर रहा हूं। pingपोर्ट 22 पर कुछ ऐसा है जो एक बूलियन देता है।

मैं यह कैसे कर सकता हूँ?

जवाबों:


21

ऐशे ही:

nc -z hostname 22 > /dev/null
echo $?

अगर है 0तो उपलब्ध है। अगर ऐसा है 1तो यह नहीं है।


ध्यान दें कि यह विकल्प केवल netcat-openbsd पैकेज के साथ काम करता है, अन्यथा विकल्प मौजूद नहीं है:nc: invalid option -- 'z'
valentin_nasta

बिना -wविकल्प nc हमेशा के लिए उबंटू पर अटक जाएगा
एडवर्ड टॉर्वाल्ड्स

क्या हमारे पास खिड़कियों से एक समान कमान है
हर्षल ज़ोप

14

नेटकट का उपयोग करें :

nc -z localhost 22

मैनपेज से

 -z      Specifies that nc should just scan for listening daemons,
         without sending any data to them.

अरे नहीं! आपने मुझे इसमें हरा दिया।
bahamat

2
धन्यवाद, एनसी पता नहीं था, मैं सोच रहा था कि nc -z -w 2 192.168.0.123(-w टाइमआउट विकल्प क्यों है, सेकंड में) टाइमआउट नहीं करता है: |
Amo__

आपको एक पोर्ट भी निर्दिष्ट करने की आवश्यकता है। nc -z -w 2 192.168.0.123 22 उम्मीद के मुताबिक काम करता है।
क्रिस

के लिए +1 z। जो भी आप स्कैन करते हैं वह अभी भी जानकारी प्राप्त कर सकता है कि किसने स्कैन किया थाidentification string
एमआरएक्स

5

वैकल्पिक:

nc -vzw 1 hostname 22

इसका उत्तर चुना जाना चाहिए, बिना -wविकल्प ncउबंटू पर हमेशा के लिए अटक जाएगा
एडवर्ड टॉर्वाल्ड्स

बूल का उपयोग =>nc -zw 2 examplehost.com 22 && { echo "You can call your backup function" ; } || { echo "SSH Unavailable" ; }
श्री पुंडीर

3

व्हाट अबाउट

MACHINE=192.168.0.8
exec 3>/dev/tcp/${MACHINE}/22
if [ $? -eq 0 ]
then
    echo "SSH up"
else
    echo "SSH down"
fi

हमेशा यह मत समझो कि यह लिनक्स है। उसका लैपटॉप मैक हो सकता है। और डेबियन निष्क्रिय करता है /dev/tcp। उबंटू डेबियन व्युत्पन्न हो सकता है (लेकिन मुझे कोई विशेष ज्ञान नहीं है)। लेकिन अगर /dev/tcpउपलब्ध है, तो हाँ यह पूरी तरह से वैध है।
bahamat

आपकी प्रतिक्रिया के लिए thx, मैंने इसे एक मैक पर लिखा है।

धन्यवाद, भले ही exec 3>/dev/tcp/${HOST}/22वास्तव में "विचित्र" दिखता हो
Amo__

यह एकमात्र उत्तर है जिसे अतिरिक्त पैकेज स्थापित करने की आवश्यकता नहीं है।
चेन ए।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.