2018-7-19
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-7-19相关的知识,希望对你有一定的参考价值。
20.27 分发系统介绍
20.28 expect脚本远程登录
20.29 expect脚本远程执行命令
20.30 expect脚本传递参数
20.27 分发系统介绍
我们的一个网站在很多台服务器上跑着,假设这个网站的后端是使用php编写的,那么当这个后端的PHP代码需要更新或扩展的时候,要如何将这些更新、扩展的代码全部都发布到这些服务器上?
所以分发系统就是用来完成以上这个需求的,分发系统需要完成的事情就是将需要上线的代码分发到这些线上服务器中。我们现在要做的就是实现这个分发系统,实现这个系统需要用到两个主要的东西就是shell和expect,通过shell结合expect可以编写一个简单的分发系统
20.28 expect脚本远程登录
yum install -y expect 安装expect
自动远程登录
#! /usr/bin/expect
set host "ip地址"
set passwd "123456"
spawn ssh [email protected]$host
expect {
"yes/no" { send "yes "; exp_continue}
"password:" { send "$passwd " }
}
interact //需要停留再远程机器上,不加会直接退出来
成功登陆
20.29 expect脚本远程执行命令
自动远程登录后,执行命令并退出
#!/usr/bin/expect
set user "root"
set passwd "123456"
spawn ssh [email protected]地址
expect {
"yes/no" { send "yes "; exp_continue}
"password:" { send "$passwd " }
}
expect "]*"
send "touch /tmp/12.txt "
expect "]*"
send "echo 1212 > /tmp/12.txt "
expect "]*"
send "exit "
比较两个脚本:
1脚本:登陆,exp脚本结束
2脚本:登陆完后还需要进行几条命令,最后退出出来
20.30 expect脚本传递参数
传递参数
#!/usr/bin/expect
set user [lindex $argv 0] //第一个参数
set host [lindex $argv 1] //第二个参数
set passwd "123456"
set cm [lindex $argv 2]
spawn ssh [email protected]$host
expect {
"yes/no" { send "yes "}
"password:" { send "$passwd " }
}
expect "]*"
send "$cm "
expect "]*"
send "exit "
执行多条命令, 用;隔开
以上是关于2018-7-19的主要内容,如果未能解决你的问题,请参考以下文章