DAY11
分发系统介绍
分发系统:上线的shell脚本,核心expect脚本语言,实现传输文件,远程执行命令
上线:开发人员开发的代码,上传到在线服务器
首先准备一台模板机器,代码是准备上线的代码,使用expect脚本,借助rsync把这些代码推送到50台机器的过程
expect脚本远程登录
首先安装expect
自动远程登录
加入执行权限
执行expect脚本,成功登录
expect脚本远程执行命令
expect “]*” ,当匹配到"]"时,执行命令
远程登录并执行命令然后退出
查看执行结果
expect脚本传递参数
执行脚本
执行多条命令,用双引号括起来
expect脚本同步文件
更改权限
执行脚本
查看执行结果
expect eof需要加上,作用是等脚本命令执行完再进行退出
expect脚本指定host和要同步的文件
更改权限,执行脚本
构建文件分发系统
需求背景
对于大公司而言,肯定时不时会有网站或者配置文件更新,而且使用的机器肯定也是好多台,少则几台,多则几十甚至上百台。所以,自动同步文件是至关重要的。
实现思路
首先要有一台模板机器,把要分发的文件准备好,然后只要使用expect脚本批量把需要同步的文件分发到目标机器即可。
核心命令
rsync -av --files-from=list.txt / [email protected]:/
创建rsync.expect脚本
创建同步文件的列表文件
vi /tmp/file.list
创建同步IP的列表文件
vi /tmp/ip.list
创建一个rsync.sh脚本(遍历一下 ip列表文件中的 ip地址)
更改权限
执行脚本
注:同步的时候,需要保证对方机器也有相同的路径,可以使用 -R创建路径;做分发系统的前提是需要保证同步的机器密码一致,这样会造成密码泄露的安全隐患,可以使用**认证。
批量远程执行命令
创建exe.expect
执行脚本