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



почему тормозит скрипт 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



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