Unix - ожидается, что не работает при выполнении команд - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь выполнить команды на удаленном хосте UNIX, используя модуль ssh send и ожидаем, но даже если скрипт успешно входит на сервер, он не выполняет команды.

#!/usr/bin/expect
set timeout 60
spawn ssh xxxx@xxxxxx

expect "yes/no" {
        send "yes\r"
        expect "*?assword" { send "xxxxxx\r" }
        } "*?assword" { send "xxxxxxx\r" }

expect "$ "
#sleep 5
send "ps -aef \r"

выход

[xxxxx@xxxxxx Scripts]$ ./TestExpect.sh
spawn ssh xxxxx@xxxxxx

xxxxxx@xxxxxx's password:
Last login: Wed May  9 02:05:47 2018 from xxxxxxxxx
Kickstarted on 2015-05-12
[xxxxx@xxxxx ~]$ [xxxxxx@xxxxx Scripts]$

Подсказка выглядит как ниже

[aacdd123@linprod345 ~]$

1 Ответ

0 голосов
/ 09 мая 2018

Возможно, проблема в том, что вы ничего не ожидаете после отправки ps -aef. Следовательно, процесс ожидаемого появления завершился до вывода на печать.

Попробуйте добавить еще несколько команд после отправки ps -aef

send "ps -aef\r"
expect $prompt
send "echo hello\r"
expect $prompt

Попробуйте поискать и в буферах wait_out, которые дадут вам захваченные потоки.

puts $expect_out(buffer)
...