LINUX.ORG.RU
ФорумAdmin

expect

 


0

1

Добрый вечер!

Подскажите что в этом скрипте неправильно:

#!/usr/bin/expect

set pass [lindex #argv 0];

spawn ssh 192.168.0.1;

expect «Password for root@freebsd:»;

send «$pass\n»;

spawn ls >> hhhh;

запускаю его командой:

[root@centos scripts]# ./vpn_create.sh 351778538

spawn ssh 192.168.0.1

Password for root@freebsd:spawn ls >> hhhh

Скажите где моя ошибка?

Заранее благодарен.

  1. Попробуй send «$pass\r»;
  2. set pass [lindex #argv 0]; - а тут не бакс нужен?
  3. Ты посылаешь пароль, а юзер точно root? ssh подставляет текущего
  4. По-моему лучше дождаться приглашения, после отсылки пароля.

И осиль уже [code]

ziemin ★★ ()

1. Не ставь ";" в конце каждой строки, ибо смысла нет.

2. Попробуй «\r» вместо «\n».

3. Жди приглашения командной строки после ввода пароля. Что-то вроде:

expect "admin@"
send "ls\r"

4. Ты хочешь выполнить эту команду («ls >> hhhh;») на сервере или локалхосте?

5. Попробуй добавить следующий код в самом конце «общения» с сервером.

send "exit\r"
expect eof
drake ()
Ответ на: комментарий от drake

А чем ключи в данном случае помогут?

Тем, что вместо всего этого expect-скрипта будет 1 команда:

ssh root@192.168.0.1 'ls >> hhhh'
. Если помимо ls >> hhhh на 192.168.0.1 нужно выполнить что-нибудь еще, то http://www.linux.org.ru/forum/admin/9330256?cid=9330721 (комментарий)

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Да, теперь согласен, что expect здесь оверкилл. Спасибо за ссылку.

drake ()
Ответ на: комментарий от dexpl

Всем спасиб немного разобрался, а ваш вариант мне не очень подходит так как ССШ ето простой пример, мне немного другое нужно, но спасиб про ССШ учту.

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