User Tools

Site Tools


программирование_диалогов_expect

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
программирование_диалогов_expect [2020/01/16 10:49]
val [Asterisk AMI]
программирование_диалогов_expect [2021/06/15 12:44]
val [Communigate CLI]
Line 9: Line 9:
  
 ==== Вариант использования с элементами конфигурации в коде скрипта ==== ==== Вариант использования с элементами конфигурации в коде скрипта ====
 +
 +!!! Не обрабатывается ситуация первого подключения (подтверждения ключа)
 +
 <​code>​ <​code>​
 +server# ssh switchN
 +
 server# cat cisco_change_conf.exp server# cat cisco_change_conf.exp
 </​code><​code>​ </​code><​code>​
Line 48: Line 53:
 send "​\n"​ send "​\n"​
 ... ...
 +</​code>​
 +
 +===== Communigate CLI =====
 +
 +<​code>​
 +mail# cat cgp_cli.exp
 +</​code><​code>​
 +#​!/​usr/​bin/​expect
 +
 +set cmd [lindex $argv 0];
 +
 +spawn telnet localhost 106
 +
 +expect "​200"​ {
 +        send "USER postmaster\n"​
 +}
 +
 +expect "​300"​ {
 +        send "PASS Pa\$\$w0rd\n"​
 +}
 +
 +expect "​200"​ {
 +        send "​$cmd\n\n"​
 +}
 +
 +expect "​200"​ {}
 +
 +sleep 1
 +send "​QUIT\n"​
 +send_user "​\n"​
 +exit 0
 +</​code><​code>​
 +mail# chmod +x cgp_cli.exp
 +
 +mail# ./​cgp_cli.exp '​CREATEACCOUNT user2 {Password = "​password2";​RealName = "​Петр Петрович Петров";​}'​
 +
 +mail# ./​cgp_cli.exp '​GETACCOUNTSETTINGS user2'
 </​code>​ </​code>​
  
 ===== Asterisk AMI ===== ===== Asterisk AMI =====
  
-  * [[http://​the-asterisk-book.com/​1.6/​asterisk-manager-api.html|Example:​ Getting the number of voicemail messages with expect]]+  * [[http://​the-asterisk-book.com/​1.6/​asterisk-manager-api.html#​manager-interface-beispiel-expect|Example: Getting the number of voicemail messages with expect]]
 <​code>​ <​code>​
 # cat /​usr/​share/​originate_ami.exp # cat /​usr/​share/​originate_ami.exp
Line 93: Line 135:
 </​code><​code>​ </​code><​code>​
 # /​usr/​share/​originate_ami.exp 403 301 "Hello World" # /​usr/​share/​originate_ami.exp 403 301 "Hello World"
 +</​code>​
 +
 +===== Docker ======
 +<​code>​
 +webinar BBB# cat /​root/​scripts/​ch_web_pass.exp
 +</​code><​code>​
 +#​!/​usr/​bin/​expect
 +
 +set email [lindex $argv 0];
 +set password [lindex $argv 1];
 +
 +spawn docker exec -it greenlight-v2 bash
 +send "​\n"​
 +expect "​bash*#"​ {send "​bundle exec rails c\n"}
 +expect "​irb*>"​ { send "​User.find_by(email:​ \"​$email\"​).update_attribute(:​password,​\"​$password\"​)\n"​ }
 +expect "​irb*>"​ { send "​exit\n"​ }
 +expect "​bash*#"​ { send "​exit\n"​ }
 +send_user "​\n"​
 +exit 0
 </​code>​ </​code>​
программирование_диалогов_expect.txt · Last modified: 2022/03/09 12:49 by val