分发系统介绍
场景:随着业务越来越大,网站或者APP服务端所使用的编程语言为PHP,需要配置lamp或者lnmp环境,还需要把代码上传到服务器上去。但是平时业务功能不断增加,需要改代码,如果有几十台上百台机器,就需要一个分发系统,将每次更新的代码发布到新的机器上去。
核心shell脚本:expect,可以实现传输文件,也可以远程执行命令
思路:首先要准备一台模板机器,机器上的代码是最新代码(准备上线),然后要知道上线机器的IP地址,对应用户的密码,使用expect脚本,借助于rsync将这些代码推送到机器上去,还可以通过expect去执行一些命令。
expect脚本远程登录
首先安装expect
自动远程登录
加入执行权限
执行expect脚本,成功登录
expect脚本远程执行命令
expect "]*" ,当匹配到"]"时,执行命令
远程登录并执行命令然后退出
查看执行结果
expect脚本传递参数
执行脚本
执行多条命令,用双引号括起来