Вторая половина дня
Я гуглил это весь день и даже пытался найти другие решения на python, но безуспешно.
У меня есть какой-то устаревший сетевой механизм, который, кажется, имеет странный тип терминала, когда вы подключаетесь к ним по SSH, тот, где CTRL + h - это забой!
Это вызывает проблемы для моего ожидаемого скрипта, чем то, что нужно сделать 3 вещи: 1) войти в систему 2) повысить привилегии (думаю, cisco enable) 3) сохранить конфигурацию
Попытался установить тип терминала, но не уверен, что vt100 правильный, я сомневаюсь, что это так. Я также добавил команды сна, чтобы посмотреть, решит ли это задержка, без кубиков.
вот мой сценарий до сих пор
#!/usr/bin/expect
set ::env(TERM) vt100
## Get username
send_user "Username: \n"
expect_user -re "(.*)\n" { set user $expect_out(1,string) }
## Get pass
stty -echo
send_user "Password: \n"
expect_user -re "(.*)\n" { set pass $expect_out(1,string) }
stty echo
## Get list of hosts
set f [ open "hosts.txt"]
set hosts [ split [read $f] "\n"]
set hosts [ lreplace $hosts end end ]
close $f
## iterate host
foreach host $hosts {
spawn ssh "$user\@$host"
expect {
"continue connecting" { send "yes\r"; exp_continue }
"assword" { send "$pass\r" }
}
expect "Copyright (c)" {
sleep 1
send "\r"
sleep 1
send "en 14\r"
sleep 1
send "$pass\r"
sleep 1
send "config save\r"
sleep 1
send "exit\r"
}
}
Вывод из скрипта
deanmoore@laptop% ./zyxel
Username:
dean.moore
Password:
spawn ssh dean.moore@host1
dean.moore@host1's password:
Copyright (c) 1994 - 2013 ZyXEL Communications Corp.
host1> ^[[47;223R%
deanmoore@laptop% 7;223R