2011-10-17 30 views
6

telnet giriş bilgilerinizi otomatik hale getirmek için bekliyoruz, senaryo için ince, günlükleri işleri cihaz.senaryo Bir bekliyoruz komutu için hiçbir birden olasılık varsa script otomatik telnet</p> <p>aracılığıyla benim Cihaza giriş bekliyoruz oluşturmaya çalışıyorlar

#!/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 

komut yukarıdaki i doğru parametreleri geçmesi başarıyla zaman ince ve günlükleri çalışır. Ama ben beklemek komut için ek dalları (hata işleme için) ekledikten sonra, betik login: isteminde sıkışır. Bir süre sonra Script Error yazdırır Herhangi bir yardım? Aşağıdaki hatalı komut dosyası.

#!/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 
    } 

} 

PS: Bu komut dosyası ayrıca cihazda farklı yapı görüntüleri yüklemek için ek sorular için beklemek geliştirilecek olmaktır. Sadece telnet (konsol) bağlantısı çalışır. ssh bir seçenek değil.

+0

Oturum açtığınızda ek komutları nasıl geçtiğinizi nasıl paylaştığınıza dikkat etmelisiniz? Bu engelden geçemiyorum: http://stackoverflow.com/questions/11148832/shell-script-successful-telnet-login-how-to-issue-commands-after-t – TryTryAgain

+1

Eğer hakkında konuşuyorsanız komut dosyasında otomatik olarak kabukta ek komutlar yürütmek. Gönder komutunu kullanman gerekiyor. etkileşim topu kullanıcıya aktarır. Gönderdiğim sorudan, zaten bir cevabınız olduğunu görüyorum. :) galibiyet için bekliyoruz .. – woodstok

cevap

4

Kötüyüm. Sorun, kıvırcık parantez ile oldu. Beklenen komutla aynı çizgide olması gerekiyordu.

İlgili konular