No meu script eu pedi para configurar switch (para criar automaticamente vlan e tunking vlan) é bom funciona. Na segunda etapa eu disse na saída show running-config
, funciona também, mas finalmente eu quero perguntar ao usuário "Tem certeza de que a configuração está concluída?" é para verificar o switch configurado, se yes
sair e se not
puder retornar, mas essa etapa não funcionar.
Por favor me ajude para finalmente dar um passo.
#!/usr/bin/expect -f
#set variables
set hostname ...
set username..
set ip ...
foreach hostname [array names interface] {
set timeout 10
match_max 500000
# Log results
log_file -a ~/results.log
send_user "\n"
send_user ">>>> Working on $hostname @ [exec date]<<<< \n"
send_user "\n"
#ssh
spawn ssh -2 -o strictHostKeyChecking=no $username\@$ipaddress
expect "username:"
send "$username\r"
expect "#"
expect "password:"
send "$password\r"
expect -re $prompt
#enable configure mode
send "conf t\n"
expect "(config#)"
#vlan trunking mode
send "$interface($hostname)\n"
expect "(config-if-range)#"
send "switchport access vlan 9\n"
expect "(config-if-range)#"
send "switchport trunk encapsulation dot1q\n"
expect "(config-if-range)#"
send "switchport mode trunk\n"
expect "(config-if-range)#"
send "switchport trunk allowed vlan 7\n"
expect "(config-if-range)#"
send "end\n"
expect "#"
send "write mem\n"
expect "#"
send "terminal length 0\r"
expect "#"
send "show running-config\r"
expect "#"
}
set output $expect_out(buffer)
puts "$output"
#Here dont working
puts -nonewline "Are you sure configuration is finished?(Y/n):"
set res [read stdin 1]
if { $res != "y" && $res != "Y" } {send_user -- "write mem\n"}
}
else { exp_continue
}
expect eof
exit
em finalmente, dê resposta sim ou não, mas para o programa eles são iguais. Sim ou não, é escrever na memória.