আমি মাইএসকিউএল পোর্টটি সাড়া দিচ্ছে কিনা তা পরীক্ষা করতে টেলনেট কমান্ড ব্যবহার করি।
telnet 10.10.10.24 3306
আমি সংযোগ বিচ্ছিন্ন করতে ctrl অক্ষর ব্যবহার করি। এটি প্রত্যাশার মতো কাজ করছে। আমি শেল স্ক্রিপ্টে এই কমান্ডটি কীভাবে ব্যবহার করব?
আমি মাইএসকিউএল পোর্টটি সাড়া দিচ্ছে কিনা তা পরীক্ষা করতে টেলনেট কমান্ড ব্যবহার করি।
telnet 10.10.10.24 3306
আমি সংযোগ বিচ্ছিন্ন করতে ctrl অক্ষর ব্যবহার করি। এটি প্রত্যাশার মতো কাজ করছে। আমি শেল স্ক্রিপ্টে এই কমান্ডটি কীভাবে ব্যবহার করব?
উত্তর:
আপনি যদি কেবল পোর্টটি খোলা আছে কিনা তা খতিয়ে দেখতে চাইলে চেষ্টা করুন:
$ nc -zv 10.10.10.24 3306
Connection to localhost 3306 port [tcp/mysql] succeeded!
ncবন্দরটি খোলা থাকলে 0 এবং 1 না থাকলে ফিরে আসবে। এটি স্ক্রিপ্টিংয়ের জন্যও বেশ সহায়ক। vস্যুইচটি চুপ করে রাখতে ছাড়ুন :
if ! nc -z 10.10.10.24 3306
then
do_something
fi
ncঅ ইন্টারেক্টিভ ব্যবহারের জন্য অনেক ভাল। এরকম কিছু চেষ্টা করুন
echo -e "\n\n" | nc 10.10.10.24 3306
আপনার কাছে এনসি না থাকলে আপনি ব্যাশ বিশেষ ফাইলগুলি পুনর্নির্দেশগুলি ব্যবহার করতে পারেন:
head -1 < /dev/tcp/10.10.10.24/3306 >/dev/null && echo MySQL is on || echo MySQL is off
টেলনেট স্ক্রিপ্টটি স্বয়ংক্রিয় করতে, আপনার প্রত্যাশা ব্যবহার করা উচিত। প্রত্যাশিত হোম পৃষ্ঠাটি দেখুন ।
এটি কোনও নির্দিষ্ট ক্ষেত্রে আমার স্ক্রিপ্ট।
host=localhost
DATE=`date +%Y-%m-%d`
TIME=`date +%H%M%S`
LOG_OK=/tmp/telnet_ok
LOG_FAIL=/tmp/telnet_falha
for port in 80 25 22 443 110
do
if telnet -c $host $port </dev/null 2>&1 | grep -q Escape; then
echo "$DATE $TIME $port: Connected" >> $LOG_OK
else
echo "$DATE $TIME $port : no connection" >> $LOG_FAIL
fi
done
http://fajlinux.com.br/2014/10/10/script-monitorando-via-telnet/
বাশ শেল / প্রত্যাশায় টেলনেট কীভাবে ব্যবহার করবেন তা এখানে
#!/usr/bin/expect
# just do a chmod 755 one the script
# ./YOUR_SCRIPT_NAME.sh $YOUHOST $PORT
# if you get "Escape character is '^]'" as the output it means got connected otherwise it has failed
set ip [lindex $argv 0]
set port [lindex $argv 1]
set timeout 5
spawn telnet $ip $port
expect "'^]'."