一、 集群分发介绍:
将一台主机上的配置、文件分发到其它主机上,避免重复操作。
二、 集群分发工具:
1. scp的安装: yum -y install openssh-clients ,所有主机都要安装。
命令格式:scp [参数] 本地文件 远程帐户@远程 IP 地址:远程目录,参数如下
-v 显示详细的连接进度
-P 指定远程主机的 sshd 端口号
-r 用于传送文件夹
-6 使用 IPv6 协议
添加主机名与 IP 映射
编辑文件 vim /etc/host ,添加主机名与 ip 的映射,即可直接使用 主机名传输文件
2. rsync 的使用:centos7默认已安装,格式同 scp ,参数说明参考上文,相当于 scp 升级版。
3. ansible:自动运维工具,本文暂不作介绍。
三、 集群分发脚本编写:
利用 rsync 编写一个脚本,自动将文件分发到所有主机的同一文件夹。
1. 编写文件:在 /usr/local/bin 下新建一个文件,命名为 xsync,文件内容如下。
cd /usr/local/bin
vim xsync
注意根据实际情况修改第 5 部分的 host 值和主机名。
#!/bin/bash
if [[ -x $(command -v rsync) ]]; then
echo yes > /dev/null
else
echo no rsync found!
exit 1
fi
#1. 获取输入参数个数;如果没有参数,直接退出
pcount=$#
if (( pcount==0 )); then
echo no args!
exit
fi
#2. 获取文件名称
p1=$1
fname=$(basename $p1)
echo fname=$name
#3. 获取文件绝对路径
pdir=$(cd -P $(dirname $p1); pwd)
echo pdir=$pdir
#4. 获取当前用户名
usr=$(whoami)
#5. 循环体
for (( host = 2; host < 4; host++ )); do
echo ---node${host}---
rsync -rvl $pdir/$fname ${usr}@node${host}:${pdir}
#statements
done
2. 添加权限:编写完以后保存,给文件添加可执行权限。
chmod a+x xsync
3. 使用方法:进入要分发的文件所在的文件夹,输入 xsync filename 即可。
示例:将 node1 上的 demo3 文件分发给 node2 和 node3
完成分发后即可在其它主机同一文件夹下看到文件