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