Следующий ожидаемый скрипт работает нормально, когда машина Linux запрашивает пароль после входа в систему.Но некоторым нашим Linux-машинам не нужен пароль для SSH (мы можем войти без пароля), поэтому мне нужно изменить ожидаемый сценарий, чтобы поддерживать компьютеры без пароля.Как я могу это сделать?
$ 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"
При работе на машине, для которой требуется пароль:
$ 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"