Bash笔记
windows 安装 expect
pip install winpexpect
expect写法
/usr/bin/expect <<-EOF
set timeout 3000
spawn ssh root@${server_ip}
expect {
"password:" { send "1234\n" }
"root@" { send "ps aux | grep \"pzx-3.0.0.jar --spring.profiles.active=${version}\" | awk '{print $2}' |xargs kill -9" }
"root@" { send "cd ${java_path}" }
"root@" { send "nohup java -jar ${java_path}/pzx-3.0.0.jar --spring.profiles.active=${version} --pzxmq.consumer=true --pzx.myUtils.hostId=1 >/dev/null 2>&1 &" }
}
expect interact
EOF
虽然很帅的写法,然而并不如直接执行服务器脚本来的实在。
expect在bash中不能使用星号
目前还不知道如何转义,在上传文件的时候,很不方便。
/usr/bin/expect <<-EOF
set timeout 3000
spawn scp -r ${basepath}/pzx_vue2/dist_cn/ root@${server_ip}:${html_path}_cn
expect "password:" { send "1234\n" }
expect interact
EOF
解决的方法是把 scp 写到另一个 #!/bin/expect 的文件。
作者:NewSea 出处:http://newsea.cnblogs.com/
QQ,MSN:iamnewsea@hotmail.com 如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。 |