栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

编写集群分发脚本xsync

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编写集群分发脚本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个问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268688.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号