Ssh / স্ক্রিপ্ট অ্যাক্সেসের জন্য কোনও দূরবর্তী কম্পিউটার অনলাইনে রয়েছে তা আমি কীভাবে পরীক্ষা করতে পারি?


12

আমি একটি স্ক্রিপ্ট লিখছি যা আমার ল্যাপটপ থেকে কোনও উবুন্টু সার্ভারে ডেটা ব্যাকআপ করবে। এটি করতে, আমি ব্যাকআপ শুরু করার আগে সার্ভার উপলব্ধ কিনা তা পরীক্ষা করার জন্য একটি (বা) sh কমান্ডের সন্ধান করছি। ping22 পোর্টের মতো এমন কিছু যা একটি বুলিয়ান দেয়।

কিভাবে আমি এটি করতে পারব?

উত্তর:


21

এটার মত:

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

যদি এটি হয় 0তবে এটি উপলব্ধ। যদি তা হয় 1তবে তা হয় না।


মনে রাখবেন যে এই বিকল্পটি কেবল নেটকাট-ওপেনবিএসডি প্যাকেজটির সাথেই কাজ করে, অন্যথায় বিকল্পটি উপস্থিত নেই:nc: invalid option -- 'z'
ভ্যালেন্টিন_নাস্টা

-wবিকল্প ছাড়াই এনসি চিরদিন আটকে থাকবে উবুন্টু
এডওয়ার্ড টরভাল্ডস

উইন্ডোজ থেকেও কি আমাদের অনুরূপ আদেশ থাকতে পারে
হর্ষাল জোপ ২ 19

13

নেটক্যাট ব্যবহার করুন :

nc -z localhost 22

ম্যানপেজ থেকে

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

অভিশাপ! তুমি আমাকে এটা দ্বারা মেরেছ.
বাহামা

2
ধন্যবাদ, এনসি জানতেন না, আমি ভাবছিলাম কেন nc -z -w 2 192.168.0.123(-আর সেকেন্ডে টাইমআউট বিকল্প) সময়সীমা শেষ হয় না: |
আমো__

আপনাকেও একটি বন্দর নির্দিষ্ট করতে হবে। NC -z -w 2 192.168.0.123 22 প্রত্যাশার মতো কাজ করে।
ক্রিস

জন্য +1 zমধ্যে। আপনি যে কেউ এখনও স্ক্যান করেন সে কেবলমাত্রidentification string
amrx


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উপলভ্য থাকে তবে হ্যাঁ এটি পুরোপুরি বৈধ।
বাহামত

আপনার মতামতের জন্য THX, আমি এটি একটি ম্যাকতে লিখেছি।

ধন্যবাদ, এমনকি যদি exec 3>/dev/tcp/${HOST}/22সত্যিই "উদ্ভট" দেখায়
আমো__

এটি কেবলমাত্র উত্তর যা অতিরিক্ত প্যাকেজ ইনস্টল করার প্রয়োজন হয় না।
চেন এ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.