远程同步脚本的编写

远程同步脚本

用于将文件在集群中进行分发的脚本,适用于批量操作。

#!/bin/bash

#1.获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi

#2.获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3.获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo dir=$dir

#4.获取当前用户名称
user=`whoami`

#5. 循环
for((host=6003; host<6005; host++)); do
        echo --------------------host$host------------------------
        rsync -rvl $pdir/$fname $user@host$host:$pdir
done

此脚本不做过多解释,是从host6002向,6003与6004节点分发的。这里选择了在6002上,作文初始化文件的节点,所以我们上传的软件、安装的软件都会在这个节点上安装部署。需要同步的软件安装目录库以及配置文件,都会用这个xsync脚本去进行分发。

脚本处处可用配置

我们要求此批量的同步脚本对与此普通用户能够处处可用,那么将此脚本放到哪里才能一处生成处处可用呢?
没错,放的位置就是 此用户的环境变量下

$ echo $PATH
/opt/module/hadoop-2.7.2/sbin:/opt/module/jdk1.8.0_144/bin:
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:
/sbin:/opt/module/hadoop-2.7.2/bin:/home/lizhi/bin

我们会发现一点,就是当前用户 /home/lizhi/bin下只属于当前用户,而且对于此用户处处可用(当然此bin文件夹可能是不存在的)。我们开始进行下一步:

$ cd /home/lizhi/
$ mkdir bin
$ touch xsync	#命名是自定义的(不要与linux内置的脚本文件重合),将上述脚本内容复制进来就可以了

注意:这只是同用户批量分发脚本,但是有一个问题就是我对远端节点进行文件分发的时候需要做的就是每分发到一个节点的时候,都会要求输入对方节点的远程登录(ssh远程登录)密码

你可能感兴趣的:(基础)