十七周四次课 2018.03.05 expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、批量远程执行命令
20.31 expect脚本同步文件
在一台机器上把文件同步到另外一台机器上去。
创建文件,然后把上面的代码粘贴进去,
把尾号132的远程机器的12.txt同步到本机的/tmp/目录下
第一次登录问提示是否登录,第二次就可以直接输密码登录了。
表示expect结束了,退出来,如果不加就会还没有传输就退出,没有时间执行操作。
然后我们加权限,然后执行
番外
默认是10秒超时,想要自定义就增加如下内容。(红框里写几就是几秒,永久不超时就是-1)
20.32 expect脚本指定host和要同步的文件
指定host和要同步的文件作为参数。(只适合同步一个文件)
先后顺序是从本机到远程机器,远程机器要写绝对路径。
然后加权限,然后执行
想要同步多个有个方法,就是循环,下面会讲到。
20.33 构建文件分发系统
我们想要同步多个文件就需要把他们写到list.txt里去,(需要加上绝对路径)然后使用这个参数就能做到了
然后我们去写list.txt文件列表
(需要保证对方的机器上也这个目录,如果没有可以在rsync.expect里的如下位置加-R就能自动创建)
然后我们还需要创建一个ip.list,因为你远程同步的机器可能不止一台,所以我们还需要加一个ip列表。
然后我们还需要创建一个rsenc的shell,为了便利一下这些ip地址
执行之前我们需要给reync.expect一个执行权限。
我们把ip.txt和list.txt名字改一下(这里是一个疏忽,之前创建的时候就应该创建的以.list结尾的)
然后执行
20.34 批量远程执行命令
有了分发系统传输文件还不够,因为我们还需要做很多操作,就需要做命令批量执行的脚本。
然后还要定义一个exe的shell脚本(也就是for循环)
然后我们来执行一下