Привет, я пытаюсь использовать expect для устранения неполадок в сети между двумя устройствами. Подводя итог, я пытаюсь запустить скрипт с использованием expect, который вводит данные на 2 устройства и применяет команды.
- скрипт просит пользователя ввести 2 имени хоста
- Устанавливаются переменные user, password и prompt.
- запустить процесс ssh на первом устройстве
- показать команды для устранения неполадок
Все вышеперечисленное работает отлично... проблема возникает при попытке подключиться по ssh к другому имени хоста, по сути, мой скрипт завершается через 10 секунд и не подключается по ssh к другому устройству.
Заранее спасибо этому сообществу за вашу отличную работу по оказанию помощи
вот код
#!/usr/local/bin/expect -f
exec tput clear >@ stdout
set timeout 10
puts "Enter hostname to connect"
set c [gets stdin]
puts "which is the destination hostname?"
set dhostname [gets stdin]
#setting password variable, reading it from file
set pa [open "pass.txt" r]
set pass [read $pa]
close $pa
#setting user variable
set user xxxx
#setting prompt variable
set prompt "(%|#|\\$|>|~|:) $"
spawn -noecho ssh $user@$c;
expect {
"Are you sure you want to continue connecting (yes/no)" {send {yes};
send "\r"
exp_continue}
"assword:" {
send "$pass\r"
expect -re $prompt
}
}
##commands to execute on the device
send "show system uptime\r";
expect "$prompt"
send "exit\r";
expect -re $prompt
send "ssh $user@$dhostname";