当前位置:   article > 正文

Linux 集群分发脚本 xsync_可是我的是从102 xsync过去的

可是我的是从102 xsync过去的

1、scp(secure copy)安全拷贝

1.1、定义

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

1.2、基本语法
scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   递归       要拷贝的文件路径/名称    目的用户@主机:目的路径/名称
  • 1
  • 2
1.3、案例实操
  1. 在hadoop102上,将hadoop101中/opt/module目录下的 jdk1.8.0_212拷贝到hadoop103上。
 scp -r jdk1.8.0_212/ song@hadoop103:/opt/model/
  • 1
  1. 在hadoop103上,将hadoop102服务器上的/opt/module/目录下的hadoop-3.1.3拷贝到hadoop103上的/opt/model/
scp -r song@hadoop102:/opt/model/hadoop-3.1.3 /opt/model/
  • 1
  1. 在hadoop103上,将hadoop102服务器上的/opt/module/目录下的jdk1.8.0_212软件拷贝到hadoop104上opt/model/下
 scp -r song@hadoop102:/opt/model/jdk1.8.0_212 song@hadoop104:/opt/model/
  • 1

2、 rsync 远程同步工具

2.1、定义

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

2.2、基本语法
rsync    -rvl       $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

选项参数说明
-a	归档拷贝
-v	显示复制过程
-l	拷贝符号连接

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
2.3、案例实操
  1. 把hadoop102机器上的/opt/software目录下的hadoop-3.1.3/同步到hadoop104服务器的下的/opt/model/hadoop-3.1.3目录
rsync -av hadoop-3.1.3/ song@hadoop104:/opt/model/hadoop-3.1.3
  • 1

3、集群分发脚本 xsync

3.1、需求:

循环复制文件到所有节点的相同目录下

3.2、期望脚本:

在任何目录下都可以使用该命令的方式,一种是放在当前用户的bin目录下,另外一种就是自定义路径 配置到PATH下
在这里插入图片描述
在这里使用的是第一种,进入该目录/home/song/bin

mkdir bin
touch xsync
  • 1
  • 2

脚本内容

#!/bin/bash 
 
#1. 判断参数个数 
# 判断参数是否小于1
if [ $# -lt 1 ]   
then 
    echo Not Enough Arguement! 
    exit; 
fi 

#2. 遍历集群所有机器 
# 对102,103,104都进行分发
for host in hadoop102 hadoop103 hadoop104 
do 
   echo ====================  $host  ==================== 
   #3. 遍历所有目录,挨个发送 
   for file in $@ 
   do 

        #4. 判断文件是否存在 
        if [ -e $file ] 
            then 
                #5. 获取父目录 
                pdir=$(cd -P $(dirname $file); pwd) 
                
                #6. 获取当前文件的名称 
                fname=$(basename $file) 
                ssh $host "mkdir -p $pdir" 
                rsync -av $pdir/$fname $host:$pdir 
            # 如果不存在
            else 
                echo $file does not exists! 
        fi 
    done 
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

给与执行权限
在这里插入图片描述

对于系统文件,分发失败
在这里插入图片描述
使用绝对路径去执行脚本
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/591671
推荐阅读
相关标签
  

闽ICP备14008679号