Я пытаюсь написать небольшой сценарий bash с некоторыми встроенными сценариями Expect, чтобы отправить нашему маршрутизатору некоторые предопределенные изменения в случае переключения на альтернативный сайт.
Мой сценарий ожидания в его простейшей форме работает. Я сталкиваюсь с использованием при добавлении проверки ошибок.
Я пытаюсь вызвать команду «получить идентификатор политики x» на маршрутизаторе Juniper ssg, а затем сопоставить, что политика, которую мы будем включать или отключать, является правильной, а затем перейти к проверке того, что определения VIP действительно работают на этом маршрутизатор, все, прежде чем мы внесем изменения.
Ожидаемая часть этого скрипта выглядит следующим образом…
# start the ssh connection, end unless we get a shell prompt
spawn ssh netscreen@duluthfw
expect {
timeout { send_user "\n Failed to get login prompt\n"; exit 1 }
eof { send_user "\nSSH failure for hostname\n"; exit 1 }
"*-> $"
}
#Lets make sure this is the right policy, else lets check again
send "get policy id 9\r"
expect {
default { send_user "\n This policy does not match the policy we need to enable, please look and set the POLICYNUM variable to the correct policy to enable.\n"; exit 1 }
"VIP"
expect "*-> $"
}
send "get vip \r"
expect {
default { send_user "These are not the VIP IPs or ports that we need to disable, please verify this is being run against the correct router or that the failover has not already been implemented."; exit 1 }
"HTTP"
send "unset interface wireless0/1 vip 192.168.35.3 port 80 \r"
expect "*->"
send "unset interface wireless0/1 vip 192.168.35.3 port 143 \r"
expect "*- $"
}
}
}
Начальная часть сценария запускается и сопоставляется с частью VIP, но затем переходит к команде 'send "get vip" и продолжает оценивать начальную проверку "get policy id" вместо возврата из команды get vip.
Как я могу сказать, что нужно прекратить оценку и перейти к следующей части.
Спасибо