Chinaunix

标题: 我该如何去判断提示符然后传送给expect 捕捉呢? [打印本页]

作者: 再现东北豹    时间: 2016-01-27 13:51
标题: 我该如何去判断提示符然后传送给expect 捕捉呢?
#重启JBOSS
#!/bin/bash
passwd=jbossxx
for i in 22.188.150.149 22.188.37.47 22.188.150.148 22.188.37.46
do
/usr/bin/expect << EOF
set timeout 100
spawn ssh -l jboss  $i
wangshangbaijil.blog.com
expect {
    "*yes/no"   { send "yes\r";exp_continue }
    "*password:" { send "$jboss_passwd\r" }
}
expect "]" { send "cdb\r" }
expect "]" { send "./jboss-manager.sh stop\r" }
expect "]" { send "sleep 3\r" }
expect "]" { send "./jboss-manager.sh start\r" }
expect "]" { send "exit\r" }
expect eof
EOF
done


现在问题在于我全部是以匹配这4个IP的终端提示符为]来执行命令,但是每个系统的终端提示符可能是$或者#或者干脆没有这种符号,
我该如何去判断提示符然后传送给expect 捕捉呢?
作者: spender    时间: 2016-03-01 15:47
send env|grep PROMPT

----- 这个方法有点落后, 建议你用 ansible 简单的不得了

ansible hosts -m serivce -a "name=jboss-manager state=restarted"

一句话搞定。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2