сценарий ожидания SSH - PullRequest
       5

сценарий ожидания SSH

1 голос
/ 15 марта 2011

У меня есть сценарий ожидания, который вызывается другим сценарием для регистрации устройств Cisco. по какой-то причине становится медленным, чтобы войти в устройства Cisco. Есть ли кто-нибудь, кто может увидеть какие-либо проблемы, или предложение может увеличить скорость для этого сценария. заранее спасибо

#!/usr/bin/expect

log_user 0
set timeout 10
set userid  "id"
set password  "pass"

# ############## Get two arguments - (1) Device (2) Command to be executed
set device  [lindex $argv 0]
set command [lindex $argv 1]

spawn /usr/bin/ssh -l $userid $device

match_max [expr 32 * 1024]

expect {
    -re "RSA key fingerprint" {send "yes\r"}
    timeout {puts "Host is known"}
}

expect {
    -re "username: " {send "$userid\r"} 
    -re "(P|p)assword: " {send "$password\r"}
    -re "Warning:" {send "$password\r"}
    -re "Connection refused" {puts "Host error -> $expect_out(buffer)";exit}
    -re "Connection closed"  {puts "Host error -> $expect_out(buffer)";exit}
    -re "no address.*" {puts "Host error -> $expect_out(buffer)";exit}
    timeout {puts "Timeout error. Is device down or unreachable?? ssh_expect";exit}
}

expect {
   -re "\[#>]$" {send "term len 0\r"}
  timeout {puts "Error reading prompt -> $expect_out(buffer)";exit}
}

expect {
   -re "\[#>]$" {send "$command\r"}
   timeout {puts "Error reading prompt -> $expect_out(buffer)";exit}
}

expect -re "\[#>]$"

set output $expect_out(buffer)
send "exit\r"
puts "$output\r\n"

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Добавьте exp_internal 1 к ожидаемому сценарию.Вы сможете увидеть, как ожидаемый соответствует шаблонам.Я подозреваю, что ваш скрипт останавливается на $ timeout секунд, потому что один из ваших шаблонов не соответствует.

0 голосов
/ 15 марта 2011

Это может быть лучше спросить на ServerFault. В любом случае, я сначала должен убедиться, что на серверах или устройствах, на которых размещен демон ssh, не заканчивается энтропия, и я бы использовал Wireshark или аналогичный метод для анализа трафика, чтобы увидеть, какая сторона соединения, кажется, ожидает другую.

...