编写集群分发脚本xsync

1. scp:secure copy 安全拷贝

(1)scp定义:

scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)

(2)案例实操

(a)将master-node中/opt/module目录下的软件拷贝到slave-node1上。

[caimh@master-node ~]$  scp -r /opt/module/*  caimh@slave-node1:/opt/module

2.rsync

rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync和scp区别:rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

(1)查看rsync使用说明

man rsync | more

       (2)基本语法

rsync -rvl     $pdir/$fname         $user@slave-node$host:$pdir

命令 命令参数 要拷贝的文件路径/名称   目的用户@主机:目的路径

       (3)选项说明

表2-1

选项

功能

-r

递归

-v

显示复制过程

-l

拷贝符号连接

(4)案例实操

              把集群主节点master-node机器上的/opt/software目录同步到所有从节点slave-node服务器的caimh用户下的/opt/目录

[caimh@master-node opt]$ sudo rsync -rvl /opt/software/* caimh@slave-node1:/opt/software/

[caimh@master-node opt]$ rsync -rvl /opt/software/* caimh@slave-node2:/opt/software/

3. 脚本需求分析:循环复制文件到所有节点的相同目录下(批处理循环拷贝)

       (1)原始拷贝:

rsync  -rvl     /opt/module              caimh@slave-node1:/opt/

       (2)期望脚本:

xsync要同步的文件名称

       (3)在/home/caimh/bin这个目录下存放的脚本,caimh用户可以在系统任何地方直接执行。

4.脚本实现

(1)在/home/caimh目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:

[caimh@master-node ~]$ mkdir bin
[caimh@master-node ~]$ ll
总用量 4
drwxrwxr-x. 2 caimh caimh 4096 9月  23 16:18 bin
[caimh@master-node ~]$ cd bin/
[caimh@master-node bin]$ vim xsync
#!/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 pdir=$pdir

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

#5 循环
for((host=1; host<3; host++)); do
        echo ------------------- slave-node$host --------------
        rsync -av $pdir/$fname $user@slave-node$host:$pdir
done
[caimh@master-node bin]$ xsync /home/caimh/bin/

(2)修改脚本 xsync 具有执行权限

[caimh@master-node bin]$ chmod 777 xsync

5.问题说明

1)我本地测试集群3个节点(master-node,slave-node1,slave-node2)

2)普通用户caimh已经设置root权限,/opt/modult和/opt/software两个文件夹所有者已经修改为caimh

3) 3个节点普通用户caimh之间已经设置了ssh免密登陆

4)rsync已经安装(sudo yum -y install rsync)

如果有人发现按照此方法,编写集群分发脚本不好使,可以考虑上面3个问题

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值