2016-07-13 4 views
0

У меня возникли проблемы с ожиданием.Ожидать ssh и создать каталог

Я пытаюсь ssh на другую машину, а затем создаю каталог на этой машине.

Прямо сейчас это то, что мой код выглядит следующим образом:

spawn ssh [email protected] 
expect "password" 
send "password" 
file mkdir directoryName 

Этот код дает мне «разрешение отказано».

При попытке заменить

file mkdir directoryName 

с

send "mkdir directoryName" 

Там нет ошибки, но это не делает файл. Спасибо.

+0

Попробуйте отправить возврат каретки как часть команды: 'send 'mkdir directoryName \ r" ' – Kenster

+0

Не работает. – acz

ответ

0

После отправки команды mkdir, дождитесь eof.

send "mkdir directoryName\r" 
expect eof 
1

Это может помочь вам: -

#!/usr/bin/expect 
set timeout -1 
spawn -noecho bash -c "ssh [email protected] 'cd /user/bill/work;<your=command>'" 
expect { 
-re "assword:"{ 
    send "mypassword/r" 
}eof{ 
    wait 
} 

Вы должны послать команду внутри ssh, как она будет работать на удаленной машине.

Объяснение этого скрипта: -

set timeout -1 установит этот цикл в бесконечной (но он будет выходить один раз spawn процесс закончен

-re будет соответствовать регулярное выражение для assword:

eof будет ждать. spawn.

 Смежные вопросы

  • Нет связанных вопросов^_^