LINUX.ORG.RU

expect скрипт


0

1

Помогите дописать expect.
Нужно зайти по ssh и выполнить команду и выйти. Но есть 2 паролья какой используется на данном хосте не известно нужно попробовать оди потом другой.

#!/usr/bin/expect
set timeout 300
set host [lindex $argv 0]
set command [lindex $argv 1]
spawn ssh user@$host
expect {
    -re ".*Are.*.*yes.*no.*" {
    send «yes\n»
    exp_continue
    }
    «*assword*» {
    send «pass\n»
    expect «$»
    send «$command\n»
    expect «$»
    send «exit\n»
    expect «logout»
    }
    eof {
        exit 1
    }
}

Команде ssh ведь можно аргументом задать эту команду, которая будет выполнена на сервере, не нужен весь этот блок с ″expect $″. Скорее нужна проверка на вывод строки ″Permission denied″.

И, так как, заранее не известно, сколько попыток ввода пароля даёт сервер, проще считать что всего одну и для ввода второго пароля запускать новый ssh.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.