spawn_id: spawn id exp6 не открыт - PullRequest
       21

spawn_id: spawn id exp6 не открыт

3 голосов
/ 20 сентября 2011

Я знаю, что эта проблема уже упоминалась здесь, но решение не работает для меня.

У меня есть этот скрипт (назовем его myscript.sh), который порождает процесс в удаленной среде и должен взаимодействовать с ним.

#!/usr/bin/expect
log_user 0
set timeout 10
spawn ssh -o PubkeyAuthentication=no [lindex $argv 0] -n [lindex $argv 1]
expect "password:" {send "mypassword\r"}
expect "Continue to run (y/n)" {send "n\r"}
interact

Когда я вызываю этот скрипт в локальной среде ...

myscript.sh user@host "command1;./command2 parameter1 parameter2"

Я получаю вышеуказанную ошибку в строке 7 (взаимодействовать)

Есть идеи ??

Ответы [ 4 ]

2 голосов
/ 16 декабря 2014

Я подозреваю, что ожидаемый не сможет найти (сопоставить) шаблон, который вы отправляете.

expect "password:" {send "mypassword\r"}
expect "Continue to run (y/n)" {send "n\r"}

Проверьте еще раз, правильно ли введены «пароль:» и «Продолжить (y / n)» в CAPS.

Если по-прежнему возникает та же ошибка, вы можете попробовать использовать регулярное выражение.

0 голосов
/ 18 марта 2019

Я тоже столкнулся с этой проблемой, но это было связано с тем, что я создал / отредактировал следующий файл для несвязанного элемента:

~/.ssh/config

Как только я удалил это, все мои скрипты начали работать, и у меня больше не было этой проблемы с моим ожидаемым файлом.

0 голосов
/ 17 июля 2018

У меня была эта проблема, и это было связано с использованием неправильного порта.

0 голосов
/ 10 января 2014

Попробуй сделать обычный ssh ​​без скрипта.Посмотри, работает ли это.Иногда идентификация удаленного хоста изменяется, и у хоста есть новый ip или новый ключ.Тогда это помогает удалить старый ключ с ssh-keygen -f ~/.ssh/known_hosts -R old_host, или что-то подобное.

...