美文网首页
rsync-集群机器之间的拷贝

rsync-集群机器之间的拷贝

作者: bclz | 来源:发表于2019-11-14 07:20 被阅读0次

    一般情况下都是用scp进行拷贝,这里介绍一个更加优质的工具——rsync

    rsync 远程同步工具

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

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

    安装:

    yum install rsync -y
    
    命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
    rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname

    选项参数说明:

    选项 功能
    -a 归档拷贝(全拷贝,包括权限,时间戳,递归目录等等)
    -v 显示复制过程

    eg:把node2上的/opt/soft目录同步到node1的/opt目录下(root用户),默认是root
    (实例是远端文件复制到本机)

    # root@node2
    [root@node1  opt]$ rsync -av node2:/opt/soft  /opt/soft
    

    最后,奉上一个拷贝脚本:

    #!/bin/bash
    #判断是否有参数, -z 长度为0->true
    if [ -z $1 ]; then
        echo "Usage: csync [filedir]"
        exit
    fi
    
    
    filedir=$1
    #获取文件名称 basename
    filename=`basename $filedir`
    echo "csync filename $filename"
    
    # 获取绝对路径,-P获取真实绝对路径
    sdir=`cd -P $(dirname $filedir); pwd`
    echo sdir=$sdir
    
    # 获取当前用户名称
    user=`whoami`
    
    # 发送至每个节点,我这里hostname是以cdh开头, 1-3
    for((host=1; host<4; host++)); do
            echo ------------------- csync cdh$host --------------
            rsync -av $sdir/$filename $user@cdh$host:$sdir
    done
    
    

    相关文章

      网友评论

          本文标题:rsync-集群机器之间的拷贝

          本文链接:https://www.haomeiwen.com/subject/bbslictx.html