2011-10-17 13 views
6

मैं एक स्क्रिप्ट स्वचालित रूप से टेलनेटउम्मीद स्क्रिप्ट टेलनेट लॉगिन

के माध्यम से अपने डिवाइस में प्रवेश करने की उम्मीद आदेश के लिए कोई एकाधिक संभावनाओं नहीं हैं, तो उम्मीद बनाने के लिए कोशिश कर रहे हैं स्वचालित करने के लिए, स्क्रिप्ट के में काम करता है ठीक, लॉग डिवाइस।

#!/usr/bin/expect 
set timeout 20 
set ip [lindex $argv 0] 
set port [lindex $argv 1] 
set user [lindex $argv 2] 
set password [lindex $argv 3] 

spawn telnet $ip $port 
expect "'^]'." sleep .1; 
send "\r"; 
sleep .1; 
expect "login:" 
send "$user\r" 
expect "Password:" 
send "$password\r"; 
interact 

उपरोक्त स्क्रिप्ट ठीक काम करता है और जब मैं सही पैरामीटर पास करता हूं तो सफलतापूर्वक लॉग इन करता है। लेकिन एक बार जब मैं उम्मीद कमांड में अतिरिक्त शाखाएं (त्रुटि प्रबंधन के लिए) जोड़ता हूं, तो स्क्रिप्ट login: प्रॉम्प्ट पर फंस जाती है। कुछ समय बाद यह Script Error कोई मदद करता है ?? नीचे त्रुटिपूर्ण लिपि।

#!/usr/bin/expect 
set timeout 20 
set ip [lindex $argv 0] 
set port [lindex $argv 1] 
set user [lindex $argv 2] 
set password [lindex $argv 3] 

spawn telnet $ip $port 
expect "'^]'." 
sleep .1; 
send "\r"; 
expect 
{ 
    "login:" 
    { 
     send "$user\r" 
     expect "Password:" 
     send "$password\r"; 
     interact 

    } 

    "host: Connection refused" 
    { 
    send_user "ERROR:EXITING!" 
    exit 
    } 

} 

पीएस: इस स्क्रिप्ट को डिवाइस पर विभिन्न बिल्ड छवियों को लोड करने के लिए अतिरिक्त संकेतों की प्रतीक्षा करने के लिए आगे विकसित किया जाना है। केवल टेलनेट (कंसोल) कनेक्शन काम करता है। तो एसएसएच एक विकल्प नहीं है।

+0

साझा करने के लिए एक बार लॉग इन किए गए अतिरिक्त आदेशों को पारित करने के तरीके को साझा करने के लिए देखभाल करें? मैं उस बाधा को दूर करने में सक्षम नहीं हूं: http://stackoverflow.com/questions/11148832/shell-script- असफल-telnet-login-how-to-issue-commands-after-that – TryTryAgain

+1

यदि आप इसके बारे में बात कर रहे हैं स्क्रिप्ट के माध्यम से स्वचालित रूप से खोल में अतिरिक्त आदेश निष्पादित करना। आपको प्रेषण आदेश का उपयोग करना चाहिए। इंटरैक्ट उपयोगकर्ता को गेंद पास करता है। आपके द्वारा पोस्ट किए गए प्रश्न से मैं देखता हूं कि आपको पहले से ही एक जवाब मिल गया है। :) जीत के लिए उम्मीद है .. – woodstok

उत्तर

4

मेरा बुरा। समस्या घुंघराले ब्रेसिज़ के साथ थी। वे उम्मीद कमांड के समान लाइन पर होना चाहिए।

संबंधित मुद्दे