我正在尝试自动化开关命令。这几乎一切都很好,但是当期望脚本从包含我的 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) $ unbuffer
-bash: unbuffer: command not found
Run Code Online (Sandbox Code Playgroud)
Centos 7.x
如何通过使用安装它yum?
yum install unbuffer 不起作用。
我需要在期望脚本中使用我的 --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”相同。
我尝试转储变量和环境,但找不到任何有用的东西。
谢谢,托比亚斯
我正在尝试连接到网络路由器并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:~#
我想用 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 版
我正在尝试在 shell 脚本中使用 SCP 传输一些文件,但在远程计算机上提示我输入密码。
我可以使用 expect 和 scp 来输入密码,这样我就不必一直输入密码了吗?