Re: почему тормозит скрипт expect

2013-05-19 Пенетрантность Oleksandr Gavenko
On 2013-04-26, Владимир Скубриев wrote:

> !/usr/bin/expect -f
>
> spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w 
> password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab
> expect -re "^Password.*"
> send "password\r";
> sleep 1
> expect -re "^Re.*"
> send "password\r";
> send "\n"
> expect eof
> exit
>
> Причем зависает он на несколько секунд после того, как выведет на экран Вторую
> просьбу о вводе пароля для проверки его с первым
>
> Т.е. на фразе
>
> Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab":
>
> но потом нормально завершается скрипт. Вопрос в том, почему зависает в конце
> то ?
>

Простите что позно отвечаю ((

Если с expect возникают "странности", сразу включаем режим отладки:

  exp_internal 1

Далее у вас

  expect -re "^Re.*"

Портит все - шапочка. '.*' не все сожрала из буфера expect (размер которого
2000 байт, что не влезно - то потеряно). Сравните как в ман страничке
вычитываю пользовательский ввод ('\n' гарантирует "жадность"):

  expect_user -re "(.*)\n"

По умолчанию задержка 10 секунд. Сравните с тем сколько у Вас )). Меняется
так:

  set timeout 30

Еще у expect скриптов обычно используют стиль без -ge или -re. Т.е. просто:

  expect Password
  send password\r
  expect Re-enter

Наличие

  sleep 1

говорит о плохо спроектированом скрипте. В Вашем случае просто удалите строку
- лишняя...

> И еще посоветуйте что почитать  по expect'у только на русском и чтобы типа
> wiki с примерами. А то что в гугле ни чего подходящего и на русском не нашел.
>
Чтобы быстро вспомнить синтаксис я пользуюсь (автор - вежливая женщина - я
отправлял замечание по опечаткам):

  http://inguza.com/document/expect-and-tcl-mini-reference-manual

Учится можно по "Exploring expect", у меня пол книги заняло неделю...

Бытрее - если вдумчиво по примерам с оффициального сайта:

  http://expect.sourceforge.net/#examples

заглядывая в man страницу...

-- 
Best regards!


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/874ndy1wj6@gavenkoa.example.com



Re: почему тормозит скрипт expect

2013-04-27 Пенетрантность Artem Chuprina
Владимир Скубриев -> debian-russian@lists.debian.org  @ Fri, 26 Apr 2013 
13:13:13 +0400:

 ВС> !/usr/bin/expect -f

 ВС> spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w 
 ВС> password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab
 ВС> expect -re "^Password.*"
 ВС> send "password\r";
 ВС> sleep 1
 ВС> expect -re "^Re.*"
 ВС> send "password\r";
 ВС> send "\n"
 ВС> expect eof
 ВС> exit

 ВС> Причем зависает он на несколько секунд после того, как выведет на экран 
Вторую
 ВС> просьбу о вводе пароля для проверки его с первым

 ВС> Т.е. на фразе

 ВС> Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab":

 ВС> но потом нормально завершается скрипт. Вопрос в том, почему зависает в 
конце
 ВС> то ?

Встречный вопрос: а зачем после второго 

send "password\r";

идет 

send "\n"

?  Если оно там по делу, то почему \n, а не \r?  Вполне возможно, что
дело не в этом, но это место в скрипте выглядит странно.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/8761z85lbj@wizzle.ran.pp.ru



Re: почему тормозит скрипт expect

2013-04-26 Пенетрантность Alexander Danilov

On 26.04.2013 13:13, Владимир Скубриев wrote:

!/usr/bin/expect -f

spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w password -f
/etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab
expect -re "^Password.*"
send "password\r";
sleep 1
expect -re "^Re.*"
send "password\r";
send "\n"
expect eof
exit

Причем зависает он на несколько секунд после того, как выведет на экран Вторую 
просьбу о вводе
пароля для проверки его с первым

Т.е. на фразе

Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab":

но потом нормально завершается скрипт. Вопрос в том, почему зависает в конце то 
?

Да кто ж его знает, но могу посоветовать autoexpect из expect-dev - полезная 
штука.


И еще посоветуйте что почитать  по expect'у только на русском и чтобы типа wiki 
с примерами. А то
что в гугле ни чего подходящего и на русском не нашел.


На русском наврядли, на английском есть книжка "Exploring Expect", даже в 
электронном виде можно найти.




Спасибо.




--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/517a54a8.10...@gmail.com



почему тормозит скрипт expect

2013-04-26 Пенетрантность Владимир Скубриев

!/usr/bin/expect -f

spawn kdb5_ldap_util stashsrvpw -D cn=admin,dc=example,dc=lab -w 
password -f /etc/krb5kdc/service.keyfile cn=kdc,ou=krb5,dc=example,dc=lab

expect -re "^Password.*"
send "password\r";
sleep 1
expect -re "^Re.*"
send "password\r";
send "\n"
expect eof
exit

Причем зависает он на несколько секунд после того, как выведет на экран 
Вторую просьбу о вводе пароля для проверки его с первым


Т.е. на фразе

Re-enter password for "cn=kdc,ou=krb5,dc=example,dc=lab":

но потом нормально завершается скрипт. Вопрос в том, почему зависает в 
конце то ?


И еще посоветуйте что почитать  по expect'у только на русском и чтобы 
типа wiki с примерами. А то что в гугле ни чего подходящего и на русском 
не нашел.


Спасибо.

--
С Уважением,
специалист по техническому и программному обеспечению,
системный администратор

Скубриев Владимир
~~~
Россия, Ростовская область, г. Таганрог

тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/517a4529.2020...@skubriev.ru