shell脚本 expect 命令的使用

expect使用

expect 是个不错的命令,能够完成一系列的自动化命令操做。对每次ssh登陆输入密码这么麻烦的时候使用深有体会。多数固定的命令执行,也能够经过expect来操做执行,很是的方便。nginx

以下例子,咱们经过expect来完成一系列的操做有读取实时日志bash

#!/usr/bin/expect

spawn ssh troot@127.0.0.1
set timeout 30
expect "password"
send "123456"
send "\n"
set timeout 5
expect “:~>”
send "sudo su -"
send "\n"
expect "~ #"
send "tail -200f /var/log/nginx/access.log"
send "\n"
interact

spawn是进入expect环境后才能够执行的expect内部命令,那么首先肯定环境安装了expect。ssh

expect个人理解有点相似if 的判断spa

send 是执行到某一步要输入的键位日志

interact 保证登陆不退出,没有的话执行完成即退出code

对于执行可能产生的延迟部分我用timeout来延迟执行命令自动化

bash expect 一块儿用

#!/bin/bash

/usr/bin/expect<<-EOF
spawn xxxx
set timeout 10
expect "password"
interact
expect eof
EOF

ps -ef |grep xxx
相关文章
相关标签/搜索