Следующий ожидаемый скрипт работает нормально, когда $ IP компьютера Linux запрашивает пароль после входа в систему
Но в некоторых случаях некоторые машины Linux не нуждаются в пароле для ssh (мы можем войти без пароля),
поэтому мне нужно изменить сценарий ожидаемого доступа для поддержки машин без пароля
Пожалуйста, посоветуйте, как настроить мой ожидаемый скрипт для поддержки машин с паролем и машин без пароля
* target of the following expect script is to check the hostname on remote Linux machine
expect_test=`cat << EOF
set timeout -1
spawn ssh $IP hostname
expect {
")?" { send "yes\r" ; exp_continue }
word: {send "pass123\r" }
}
expect eof
EOF`
expect -c "$expect_test"
пример exe на удаленной машине (с паролем) (имя удаленной машины - Linux1_machine)
IP=10.17.18.6
expect -c "$expect_test"
spawn ssh 10.17.18.6 hostname
sh: /usr/local/bin/stty: not found
This computer system, including all related equipment, networks and network devices (specifically including Internet access),is pros
yes
Password:
Linux1_machine
пример, когда мы запускаем ожидаемый скрипт на машине, которой не требуется пароль для входа в систему
IP=10.10.92.26
expect -c "$expect_test"
spawn ssh 10.10.92.26 hostname
sh: /usr/local/bin/stty: not found
Linux15_machine
expect: spawn id exp5 not open
while executing
"expect eof"