7月20日任务

20.31 expect脚本同步文件
20.32 expect脚本指定host和要同步的文件
20.33 构建文件分发系统
20.34 批量远程执行命令

expect脚本同步文件

如果把expect eof注释掉则表示登录后立马断开,更别提传输文件了,所以要么加expect eof,要么在结尾加interact

注释掉后和不注释掉expect eof的两种测试结果:

expect指定host和要同步的文件

补充(在3.expect中可以在$cm\r下面加一个timeout时间,默认为10秒,如set timeout 5表示5秒,-1表示不停止)

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

 

注意:①同步过程是从本地到远程

           ②file的路径一定要写绝对路径

测试:

构建文件分发系统

需求背景:大公司服务器数量庞大,需要实现多台机器的自动同步,此时不能按照上述方法单个同步,需要建立一个分发系统,实现自动化批量同步

实现思路:首先要有一台模板机器,准备分发系统,然后只需要使用expect脚本批量的把需要同步的文件上分别同步到目的机器上

核心命令:rsync -av --files-from=list.txt / root@localhost:/

rysnc.expect脚本

如上图所示:定义host,file参数,(file同样必须为绝对路径,否则无法同步),使用rsync必须要让所有的密码保持一致,否则无法同步,解决办法重新设置所有密码一致,(由于此操作会造成安全隐患,一旦expect脚本内容泄露,则会造成所有服务器密码也泄露),还可以通过密钥认证的方式省去密码登录带来的潜在安全风险,同时默认SRC目录存在,否则要加-avR来自动创建

创建文件集 /tmp/list.txt 并输入需要同步的具体文件绝对路径

创建需要同步的src IP地址 /tmp/ip.list 

编写rysnc脚本

测试结果:

发现src下/root/shell.1txt不存在,加了rsync -R批量生成目录,查看src下是否存在

批量远程执行命令(类似于自动化)

①远程登录脚本

②for循环脚本

③测试成功

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值