标签: expect

预期脚本太快:在从文件读取的每一行之间添加睡眠

我正在尝试自动化开关命令。这几乎一切都很好,但是当期望脚本从包含我的 switch 命令的文件中读取每一行(逐行列出)时,开关似乎在大约 10 或 15 个命令后停止,我认为缓冲区太小了。

如何在从文件读取的每个命​​令之间添加睡眠?谢谢!!

set fp [open "/home/room.txt" r]
set data [read $fp]

set timeout -60
spawn telnet 10.91.60.14
match_max 100000
sleep 2
expect *
send -- "^Y"
sleep 2
send -- "password\r"
sleep 2
send -- "^[\[A"
send -- "^[\[A"
send -- "\r"
sleep 1
send -- "enable\r"
send -- "configure terminal\r"
sleep 1
expect *
sleep 2
**send -- "$data"**
sleep 2
interact
Run Code Online (Sandbox Code Playgroud)

scripting linux bash switch expect

5
推荐指数
1
解决办法
5万
查看次数

如何在centos上安装unbuffer?

$ unbuffer
-bash: unbuffer: command not found
Run Code Online (Sandbox Code Playgroud)

Centos 7.x

如何通过使用安装它yum

yum install unbuffer 不起作用。

centos yum expect

5
推荐指数
1
解决办法
5242
查看次数

在变量中使用 ansible --ask-become-pass

我需要在期望脚本中使用我的 --ask-become-pass 密码。有没有办法使用在变量中启动 ansible_playbook 时输入的密码?

伪代码:

# ansible-playbook --become --ask-become-pass -i testing master.yml
BECOME password: secretpassword

Run Code Online (Sandbox Code Playgroud)

然后在任务中

- name: use pw variable in task
  expect:
   command: /bin/bash -c "/usr/bin/my_command"
   responses:
     Password: "{{ prompted_pass }}"
Run Code Online (Sandbox Code Playgroud)

在阅读“密码”提示时,我希望输入“secretpassword”

我知道“become_user”,不幸的是它对我的情况没有帮助,因为远程服务器要求输入密码 - 但它与“become_password”相同。

我尝试转储变量和环境,但找不到任何有用的东西。

谢谢,托比亚斯

expect ansible

4
推荐指数
1
解决办法
6913
查看次数

执行远程命令和显示输出的简单 EXPECT 脚本

我正在尝试连接到网络路由器并show status在其上执行。
目前我正在使用: 它不起作用,我被困在我尝试输入密码但它不起作用,我得到:我在这里做错了什么......?
spawn ssh -o StrictHostKeyChecking=no admin@192.168.20.254
expect " * ? password:*\r"
send -- "secretPassword\r"
sleep 5
send -- "show status\r"
sleep 10
send -- "exit\r"

admin@192.168.20.254's password:
server1:~# secretPassword
-bash: server1: command not found
server1:~#


ssh expect

3
推荐指数
1
解决办法
5万
查看次数

带有sudo的Ansible“期望”模块?

我想用 Ansible 运行安装程序脚本。安装程序脚本会提示一些响应,并且需要以 root 权限运行。

这是我的 Ansible 任务的本质:

- expect:
  become: yes
  become_method: sudo
  command: "installer.bin"
  echo: yes
  responses:
    "Choose the appropriate installation or upgrade option.": "2"
    "Where should the software be installed?": "/opt/newsoftware/" 
Run Code Online (Sandbox Code Playgroud)

我原以为这会奏效,但我收到错误

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: become_method"}
Run Code Online (Sandbox Code Playgroud)

如果我省略“become_method”,则会出现此错误:

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: become"}
Run Code Online (Sandbox Code Playgroud)

我的 Ansible 是 2.1.1.0 版

expect ansible

2
推荐指数
1
解决办法
3333
查看次数

我可以在 SCP 中使用 expect 来绕过密码提示吗?

我正在尝试在 shell 脚本中使用 SCP 传输一些文件,但在远程计算机上提示我输入密码。

我可以使用 expect 和 scp 来输入密码,这样我就不必一直输入密码了吗?

bash scp expect

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

expect ×6

ansible ×2

bash ×2

centos ×1

linux ×1

scp ×1

scripting ×1

ssh ×1

switch ×1

yum ×1