大数据集群 xsync文件同步脚本

1 简介

在大数据集群部署过程中,往往需要同步文件和配置到多台机器上,如果一台台的机器去复制,效率太低还容易出错。我们可以使用脚本的形式,批量同步文件,这里使用async进行文件同步。

2 配置集群hostname

2.1 配置hostname文件

1 服务器hadoop01
[root@localhost ~]# echo hostname1 > /etc/hostname
hostname hadoop01
2 服务器hadoop02
[root@localhost ~]# echo hadoop02 > /etc/hostname
hostname hadoop02
3 服务器hadoop03
[root@localhost ~]# echo hadoop03 > /etc/hostname
hostname hadoop03
4 服务器hadoop04
[root@localhost ~]# echo hadoop04 > /etc/hostname
hostname hadoop04

2.2 配置hosts文件

同步脚本的那台机器上,现在是hadoop01
192.168.85.101 hadoop01
192.168.85.102 hadoop02
192.168.85.103 hadoop03
192.168.85.104 hadoop04
192.168.85.105 hadoop05

3 配置免密登录

3.1 生成rsa密钥

使用命令ssh-keygen 生成rsa密钥,配置信息直接回车即可, 生成的密钥默认在当前用户主目录的.ssh目录下。
密钥文件有两个:

  • id_rsa 存放着私钥
  • id_rsa.pub 存放着公钥
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fX0pdntsAyRWTvjuoSG+VFu/vsfFpRypBi2Z5iRY8ok root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|            .o   |
|      . .  .+    |
|       * . *.o . |
|      E +.O +oo o|
|        S=.+oB.*o|
|         .oo*oBo+|
|        ...o+ .==|
|        .. . . .*|
|         ..   .+o|
+----[SHA256]-----+
[root@localhost ~]# 

3.2 同步公钥到其他服务器

3.2.1 安装rsync
[root@localhost ~]# yum install -y rsync
3.2.1 同步公钥
[root@localhost ~]#  cp id_rsa.pub authorized_keys
[root@localhost ~]# rsync authorized_keys root@hadoop02:/root/.ssh/
[root@localhost ~]# rsync authorized_keys root@hadoop03:/root/.ssh/
[root@localhost ~]# rsync authorized_keys root@hadoop04:/root/.ssh/

3.3 免密登录测试

无需输入密码,代表密码登录配置成功

[root@localhost ~]# root@hadoop02

4 xsync脚本使用

用户主目录的bin目录添加 pwd查看当前目录,用户登录进去的初始目录,一般为目录

4.1 创建脚本

#!/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 in 02 03 04; do
        echo ----------------- sync hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
参数 filename 待发送的文件或目录名

4.2 测试脚本

[root@localhost ~]# xsync /hadoop/test.txt
----------------- sync hadoop02 --------------
----------------- sync hadoop03 --------------
----------------- sync hadoop04 --------------

5 相关信息

  • 博文不易,辛苦各位猿友点个关注和赞,感谢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小P聊技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值