Hadoop rsync和scp和xsync集群分发脚本

 

学习视频:https://www.bilibili.com/video/BV1Qp4y1n7EN?p=27

一、scp(secure copy)安全拷贝

定义:

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

基本语法:

scp    -r        $pdir/$fname                $user@$host:$pdir/$fname

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

 二、rsync远程同步工具

定义:

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

语法:

rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname

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

选项参数说明:

选项 功能
-a 归档拷贝
-v 显示复制过程

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

三、xsync集群分发脚本

 

!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
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

将xync文件放到环境变量目录下,即可全局使用:

 

 

 

 

posted @ 2022-03-03 20:17  非帆丶  阅读(86)  评论(0编辑  收藏  举报