分发系统、expect脚本

1 分发系统介绍
2 expect脚本远程登录
3 expect脚本远程执行命令
4 expect脚本传递参数
5 expect脚本同步文件
6 expect脚本指定host和要同步的文件
7 构建文件分发系统
8 批量远程执行命令

1、分发系统介绍

分发系统:上线的shell脚本,核心expect脚本语言,实现传输文件,远程执行命令

上线:开发人员开发的代码,上传到在线服务器

首先准备一台模板机器,代码是准备上线的代码,使用expect脚本,借助rsync把这些代码推送到50台机器的过程

2、expect脚本远程登录

首先安装expect

082942_R8o5_3708406.png

自动远程登录

083304_OgYU_3708406.png

083331_08PV_3708406.png

加入执行权限

083716_lSa2_3708406.png

执行expect脚本,成功登录

083737_rKmH_3708406.png

 3、expect脚本远程执行命令

084257_xCt1_3708406.png

084344_eJmT_3708406.png

expect "]*" ,当匹配到"]"时,执行命令

远程登录并执行命令然后退出

084436_JoTy_3708406.png

查看执行结果

090631_3aBD_3708406.png

 4、expect脚本传递参数

091803_ZxcR_3708406.png

091829_4h8l_3708406.png

执行脚本

092012_xzb0_3708406.png

执行多条命令,用双引号括起来

092216_lf3n_3708406.png

 5、expect脚本同步文件

074200_yX7m_3708406.png

074556_yf5d_3708406.png

更改权限

074723_oYUm_3708406.png

执行脚本

074750_CFpb_3708406.png

查看执行结果

074815_WlWf_3708406.png

expect eof需要加上,作用是等脚本命令执行完再进行退出

 6、expect脚本指定host和要同步的文件

082206_2exs_3708406.png

082237_KHz8_3708406.png

更改权限,执行脚本

082426_OFSm_3708406.png

 7、构建文件分发系统

  • 需求背景

        对于大公司而言,肯定时不时会有网站或者配置文件更新,而且使用的机器肯定也是好多台,少则几台,多则几十甚至上百台。所以,自动同步文件是至关重要的。

  • 实现思路

        首先要有一台模板机器,把要分发的文件准备好,然后只要使用expect脚本批量把需要同步的文件分发到目标机器即可。

  • 核心命令

        rsync -av --files-from=list.txt / root@host:/

创建rsync.expect脚本

083628_jxCA_3708406.png

084150_9MHs_3708406.png

创建同步文件的列表文件

084006_tjLs_3708406.png

vi /tmp/file.list

084026_g3Nu_3708406.png

创建同步IP的列表文件

vi /tmp/ip.list

084307_lZMz_3708406.png

创建一个rsync.sh脚本(遍历一下 ip列表文件中的 ip地址)

084808_DeRY_3708406.png

084752_6jPm_3708406.png

更改权限

085202_ILYj_3708406.png

执行脚本

085337_E97E_3708406.png

085752_AyK1_3708406.png

注:同步的时候,需要保证对方机器也有相同的路径,可以使用 -R创建路径;做分发系统的前提是需要保证同步的机器密码一致,这样会造成密码泄露的安全隐患,可以使用密钥认证。

 8、批量远程执行命令

创建exe.expect

090812_vE2p_3708406.png

090856_stBF_3708406.png

090914_14Zo_3708406.png

创建exe.sh

091111_5K6H_3708406.png

090941_CCF8_3708406.png

执行脚本

091003_yQkN_3708406.png

转载于:https://my.oschina.net/u/3992081/blog/3000837

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值