精华内容
下载资源
问答
  • xsync
    2019-04-07 19:45:00

    shell  小工具,用于集群搭建:

    xsync脚本基于rsync工具,rsync 远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点,它只是拷贝文件不同的部分,因而减少了网络负担。
    rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
    常用参数:
    -r, –recursive 对子目录以递归模式处理
    -R, –relative 使用相对路径信息
    -l, –links 保留软链结
    -v, –verbose 详细模式输出,传输过程可见

    在/usr/local/bin 目录下创建 xsync 文件,向里面添加:

     

    #!/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=3; host<7; host++)); do
    #echo $pdir/$fname $user@192.168.25.143$host:$pdir
    # echo --------------- 192.168.25.14$host ----------------
    # rsync -rvl $pdir/$fname $user@192.168.25.14$host:$pdir
    #done

    #5 循环
    for host in  192.168.25.143 192.168.25.144 192.168.25.145 192.168.25.146  ; do
    #echo $pdir/$fname $user@$host:$pdir
    echo --------------- $host ----------------
    rsync -rvl $pdir/$fname $user@$host:$pdir
    done

     

    转载于:https://www.cnblogs.com/lshan/p/10666679.html

    更多相关内容
  • Hadoop–入门编写集群分发脚本xsync1.rcp命令2.scp命令3.rsync 远程同步工具4.xsync集群分发脚本1.创建文件2.编写代码3.修改脚本 xsync 具有执行权限4.调用脚本形式:xsync 文件名称 编写集群分发脚本xsync 在配置...
  • 分布式经常需要做集群部署,很多服务器间需要传文件,基于rsync创建xsync文件简化服务间的传输,记得配置里面的服务器地址就行了
  • xsync集群分发脚本 需求:循环复制文件到所有节点的相同目录下 需求分析: (a)rsync命令原始拷贝:  rsync -rvl /opt/module root@hadoop12:/opt/ (b)期望脚本:  xsync要同步的文件名称 (c)我们将xsync脚本...
  • 【IT十八掌徐培成】Hadoop第02天-03.自定义脚本xsync.zip
  • 同步文件/目录脚本(xsync) 将文件或目录同步到集群的其他节点 在使用之前,所有节点均需要安装 rsync 服务(yum install rsync -y) 建议创建脚本目录为:/usr/local/bin shell脚本 #!/bin/bash # 获取输出参数,如果...
  • 将文件上传到服务器/usr/bin目录下,然后chmod +x xsync
  • Linux xsync命令脚本

    千次阅读 2021-12-11 22:26:29
    在 /bin/目录下创建 xsync 脚本如下: #!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in master node1 node2 do echo ===========...

    在   /bin/目录下创建   xsync

    首先 :yum install -y rsync

    脚本如下:

    #!/bin/bash
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
     echo Not Enough Arguement!
     exit;
    fi
    
    #2. 遍历集群所有机器
    for host in master node1 node2
    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
    

    给xsync文件赋予执行权限:

    chmod  777 xsync

    然后执行 :    sudo  xsync   目录 

    如:将 master机器/opt下的scp复制到  node1  node2

    [root@master bin]#  xsync /opt/scp
    -bash: /usr/local/bin/xsync: /bin/bash^M: 坏的解释器: 没有那个文件或目录
    [root@master bin]# sudo  xsync /opt/scp
    ==================== master ====================
    sending incremental file list
    
    sent 134 bytes  received 18 bytes  304.00 bytes/sec
    total size is 49  speedup is 0.32
    ==================== node1 ====================
    sending incremental file list
    
    sent 134 bytes  received 18 bytes  304.00 bytes/sec
    total size is 49  speedup is 0.32
    ==================== node2 ====================
    sending incremental file list
    
    sent 130 bytes  received 18 bytes  296.00 bytes/sec
    total size is 49  speedup is 0.33
    [root@master bin]# cd 
    [root@master ~]# xsync /opt/scp
    -bash: /usr/local/bin/xsync: /bin/bash^M: 坏的解释器: 没有那个文件或目录
    [root@master ~]# sudo xsync /opt/scp
    ==================== master ====================
    sending incremental file list
    
    sent 130 bytes  received 18 bytes  296.00 bytes/sec
    total size is 49  speedup is 0.33
    ==================== node1 ====================
    sending incremental file list
    
    sent 134 bytes  received 18 bytes  304.00 bytes/sec
    total size is 49  speedup is 0.32
    ==================== node2 ====================
    sending incremental file list
    
    sent 134 bytes  received 18 bytes  304.00 bytes/sec
    total size is 49  speedup is 0.32
    [root@master ~]# cd /opt/
    [root@master opt]# cd scp/
    [root@master scp]# ll
    总用量 4
    -rw-r--r-- 1 root root 45 12月 11 21:06 1.html
    drwxr-xr-x 2 root root 22 12月 11 21:38 abc
    [root@master scp]# mkdir aaaaa
    [root@master scp]# cd aaaaa/
    [root@master aaaaa]# vi aa.text
    [root@master aaaaa]# cd
    [root@master ~]# sudo xsync /opt/scp
    ==================== master ====================
    sending incremental file list
    
    sent 183 bytes  received 19 bytes  404.00 bytes/sec
    total size is 62  speedup is 0.31
    ==================== node1 ====================
    sending incremental file list
    scp/
    scp/aaaaa/
    scp/aaaaa/aa.text
    
    sent 249 bytes  received 48 bytes  594.00 bytes/sec
    total size is 62  speedup is 0.21
    ==================== node2 ====================
    sending incremental file list
    scp/
    scp/aaaaa/
    scp/aaaaa/aa.text
    
    sent 249 bytes  received 48 bytes  594.00 bytes/sec
    total size is 62  speedup is 0.21
    [root@master ~]# cd
    [root@master ~]# cd /bin/
    [root@master bin]# vi xsync
    [root@master bin]# 
    

    附:

    zk.sh 脚本

    #!/bin/bash
    case $1 in
    "start"){
    for i in master node1 node2
    do
     echo ---------- zookeeper $i 启动 ------------
    ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh  start"
    done
    };;
    "stop"){
    for i in master node1 node2
    do
     echo ---------- zookeeper $i 停止 ------------ 
    ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
    done
    };;
    "status"){
    for i in master node1 node2
    do
     echo ---------- zookeeper $i 状态 ------------ 
    ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
    done
    };;
    esac

    附:

    jpsall.sh 脚本:

    #!/bin/bash
    
    # 执行jps命令查询每台服务器上的节点状态
    echo ======================集群节点状态====================
    
    for i in master node1 node2
    do
            echo ====================== $i ====================
            ssh $i "/opt/jdk/jdk1.8.0_202/bin/jps"
    done
    echo ======================执行完毕====================

    展开全文
  • xsync集群分发脚本 (1)需求:循环复制文件到所有节点的相同目录下 (2)需求分析:(a)rsync命令原始拷贝:rsync -av /opt/module student@hadoop103:/opt/(b)期望脚本:xsync要同步的文件名称(c)期望脚本在...

    目录

     1.scp(secure copy)安全拷贝

    2 .rsync远程同步工具

    3. xsync集群分发脚本


     

     1.scp(secure copy)安全拷贝

    (1)scp定义

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

           (2)基本语法

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

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

    (3)案例实操

    • 前提:在hadoop102、hadoop103、hadoop104都已经创建好的/opt/module、           /opt/software两个目录,并且已经把这两个目录修改为student:student

    [student@hadoop102 ~]$ sudo chown studnet:student -R /opt/module

    (a)在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。(推文件)

    [student@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212  student@hadoop103:/opt/module

    (b)在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。

    [student@hadoop103 ~]$ scp -r student@hadoop102:/opt/module/hadoop-3.1.3  /opt/module/(拉文件

    (c)在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。

    [student@hadoop103 opt]$ scp -r student@hadoop102:/opt/module/* student@hadoop104:/opt/module

    2 .rsync远程同步工具

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

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

           (1)基本语法

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

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

             选项参数说明

    选项

    功能

    -a

    归档拷贝

    -v

    显示复制过程

    (2)案例实操

           (a)删除hadoop103中/opt/module/hadoop-3.1.3/wcinput

    [student@hadoop103 hadoop-3.1.3]$ rm -rf wcinput/

           (b)同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103

    [student@hadoop102 module]$ rsync -av hadoop-3.1.3/ student@hadoop103:/opt/module/hadoop-3.1.3/

    3. xsync集群分发脚本

    (1)需求:循环复制文件到所有节点的相同目录下

           (2)需求分析:

    (a)rsync命令原始拷贝:

    rsync  -av     /opt/module        student@hadoop103:/opt/

    (b)期望脚本:

    xsync要同步的文件名称

    (c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径

    [student@hadoop102 ~]$ echo $PATH

    /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/student/bin:/opt/module/jdk1.8.0_212/bin

    如果环境变量输出结果中没有/home/student/bin 就自己添加一下 

    cd /etc/profile.d/

    vim my_env.sh
    export PATH=/home/student/bin:$PATH

     

    (3)脚本实现

    (a)在/home/student/bin目录下创建xsync文件

    [student@hadoop102 opt]$ cd /home/student

    [student@hadoop102 ~]$ mkdir bin

    [student@hadoop102 ~]$ cd bin

    [student@hadoop102 bin]$ vim 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

    (b)修改脚本 xsync 具有执行权限

    [student@hadoop102 bin]$ chmod +x xsync

    (c)测试脚本

    [student@hadoop102 ~]$ xsync /home/student/bin

    (d)将脚本复制到/bin中,以便全局调用

    [student@hadoop102 bin]$ sudo cp xsync /bin/

    (e)同步环境变量配置(root所有者)

    [student@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh

    注意:如果用了sudo,那么xsync一定要给它的路径补全。

    让环境变量生效

    [student@hadoop103 bin]$ source /etc/profile

    [student@hadoop104 opt]$ source /etc/profile

    本篇博客是在进行尚硅谷相关课程学习后得出的一篇博客,希望能对大家有些许的帮助 

    展开全文
  • 写一个shell脚本(脚本名称:xsync,又称xsync命令):实现多个电脑或者虚拟机之间的文件同步?一·xsync命令与rsync命令之间关系介绍:(1)xsync命令来源于一个xsync的脚本,这个脚本不是Linux系统自带的,是...

    解决:如何写一个shell脚本(脚本名称:xsync,又称xsync命令):实现多个电脑或者虚拟机之间的文件同步?

    一·xsync命令与rsync命令之间关系介绍:

    (1)xsync命令来源于一个xsync的脚本,这个脚本不是Linux系统自带的,是程序员自己写的。

    (2)xsync脚本的底层,实质是调用Linux系统自带的rsync命令,来实现多个电脑之间的快速文件同步。

    (3)rsync命令可以直接使用:(rsync命令本质是通过“用户+电脑IP地址”形式,向其他服务器发送数据,并在其他服务器上创建相同目录与文件)

    rsync命令的用法:
    
    rsync -rvl 要拷贝的文件路径/名称 目的用户@主机IP地址:目的路径
    
    例如:
    rsync -rvl /root/shell/test.sh root@192.168.111.130:/root/shell/
    

    二·xsync命令作用:

    (1)使用xsync命令同步一个文件,会只将这个文件,同步到其他服务器的相同路径下面(没有的目录与文件会自动创建)。

    (2)使用xsync命令同步一个目录,会将这个目录下面的所有文件以及子目录,同步到其他服务器相同路径下面(没有的目录与文件会自动创建)。

    (3)多次同步某一个文件或者目录,第一次全部同步,第二次以及之后就只会同步里面发生更改的部分,未更改的部分不会重复同步

    三·问题描述:

    (1)Linux系统中不存在xsync命令,但存在相似命令sync,(即,可以使用rsync命令,但不能使用xsync命令)

    在这里插入图片描述
    在这里插入图片描述

    (2)需要快速实现将一个文件同步到其他电脑上去,不是一个个复制(即,服务器集群中的快速同步命令)

    四·问题原因:

    (1)linux系统中缺少一个xsync脚本

    (2)xsync脚本需要放到Linux系统的“/bin”目录下,这样才可以在任何目录下边调用xsync命令

    五·解决方法:

    (1)Linux系统开启ssh服务:

    CentOS8开启SSH服务步骤:
    
    1、首先安装SSH服务(centos8默认自带)
    
    yum install openssh-server
    
    2、启动SSH服务
    
    systemctl start sshd
    
    3、查看SSH服务状态
    
    systemctl status sshd
    
    4、查看端口(22端口)
    
    netstat -antp | grep sshd
    
    5、加入开机启动
    
    chkconfig sshd on
    
    

    (2)创建一个xsync脚本文件:

    vim xsync
    

    (3)将下面的xsync脚本模板,拷贝到xsync文件中去

    #!/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=129; host<=130;host++))
    do
            echo ------------------- @192.168.111.$host --------------
            rsync -rvl $pdir/$fname $user@192.168.111.$host:$pdir/
    done
    

    注意:第五步循环rsync命令IP地址那一段,要结合自己的实际情况,去更改才行;rsync命令使用方法,参考上文所述

    (4)给xsync脚本添加可以执行的权限

    chmod 755 xsync
    

    (5)将写好的xsync脚本文件,拷贝到“/bin”目录下边。

    mv xsync /bin
    

    (6)任意位置调用xsync命令,向多台服务器同步文件

    xsync命令用法:
    (1)xsync 路径/文件名
    (2)xsync 路径/目录
    注意:路径可以是绝对路径,也可以是相对路径
    

    (7)实际测试:如下图所示

    1.在一台电脑上执行这个xsync命令
    在这里插入图片描述
    2.另外两台电脑上面的相同路径下面,就会出现相同的文件
    在这里插入图片描述
    在这里插入图片描述

    六·综上所述:上面的方法还有一个缺陷,那就是需要输入每台服务器的密码。若不想输入各台服务器密码。需要配置ssh私钥公钥,可以参考以下链接

    https://blog.csdn.net/weixin_48033662/article/details/121542487?

    展开全文
  • rsync命令以及xsync封装

    2022-04-08 16:47:17
    封装xsync命令4. 问题记录5. 参考文章 1. 配置ssh无密码登录 具体操作请看这里 如果ping的通在进行操作 2. 安装rsync 使用apt-get install rsync 或者使用yum install -y rsync进行安装 安装完成后测试输入rsync...
  • 本文介绍了在Debian10中编写文件分发脚本xsync的全过程,涉及到原理介绍和踩坑记录,
  • xsync文件

    2021-10-15 10:11:42
    1、写好xsync.sh脚本 #!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop101 hadoop102 hadoop103 do echo ====================...
  • 一、报错问题 Bad owner or permissions on /home/pcz/.ssh/config Bad owner or permissions on /home/pcz/.ssh/config rsync: connection unexpectedly closed (0 bytes received so far) [sender] ...
  • 3. xsync集群分发脚本 0. 相关文章链接 大数据基础知识点 文章汇总 1. scp(secure copy)安全拷贝 1)scp定义: scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2) 2)基本语法: scp ...
  • xsync集群分发脚本

    千次阅读 2021-06-05 10:31:17
    编写xsync集群分发脚本之前先要在
  • 2、在/usr/local/bin目录下创建xsync文件 touch xsync #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename...
  • 使用xsync脚本分发

    千次阅读 2021-11-10 18:20:19
    为什么使用xsync脚本来分发文件 因为操作简单,只需要执行脚本在后面加上需要分发的文件就行了 然后底层不一致,scp使用的是安全拷贝,而xsync使用的是增量拷贝 由于底层不一致,xsync比scp快上许多 使用脚本来分发...
  • Hadoop--xsync分发脚本

    2021-06-02 23:28:10
    准备工作: 1.3x客户机(关闭防火墙、静态IP、主机...编写集群分发脚本xsync: scp(secure copy):安全拷贝 a. scp定义:scp可以实现服务器与服务器之间的数据拷贝(from server1 to server2); b. 基本语法: scp -r
  • linux系统同步分发xsync配置 1.在本地的/etc/hosts文件中,配置要同步分发的服务的IP别名。 2.配置免密登录 2.1生成rsa密钥 使用命令ssh-keygen 生成rsa密钥,配置信息直接回车即可, 生成的密钥默认在当前用户主目录...
  • fi done done 第二步:修改脚本 xsync 具有执行权限 [tedu@hadoop105 bin]$ chmod +x xsync 或 [tedu@hadoop105 bin]$ chmod 777 xsync 第三步:测试脚本 ,将bin目录分发到其他主机 [tedu@hadoop1025~]$ xsync /...
  • Linux-xsync分发脚本

    2021-10-28 14:52:35
    xsync 集群分发脚本 (1)需求:循环复制文件到所有节点的相同目录下 (2)需求分析: (a)rsync 命令原始拷贝: rsync -av /opt/module atguigu@hadoop103:/opt/ (b)期望脚本: xsync 要同步的文件名称 (c)...
  • 今天搭建了三台虚拟机的集群,在集群中部分操作在三台虚拟机上的操作都一致,为了提高效率,就需要配置xsync实现集群分发。在网上也参考了好多资料,最终结合几篇博客配置传成功,遂将配置过程进行记录。 二、xsync...
  • Xsync 集群分发脚本

    2021-09-25 13:52:40
    Xsync 集群分发脚本 #查看全局变量 [atguigu@hadoop102 ~]$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atgu igu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bi n [atguigu@...
  • Hadoop之xsync脚本撰写、测试与使用
  • 什么是rsync脚本和xsync脚本? rsync本身是同步,主要对差异文件做更新。 xsync是对rsync的二次封装。借助rsync脚本实现循环复制文件到所有节点的相同目录下,省去了每次同步脚本时输入文件位置和不同目标用户的相同...
  • 本文目录如下: 4 完全分布式运行模式(开发重点) 4.1 虚拟机准备 4.2 scp(secure copy)安全拷贝 4.3 rsync 远程同步工具 4.4 **`xsync集群分发脚本`** 4.4.1 需求分析: 4.4.2 脚本实现 4.4.3 xsync相关错误 4.5 ...
  • xsync同步脚本的使用

    万次阅读 多人点赞 2019-08-03 12:19:53
    xsync同步脚本的使用 1.简介 在集群机器配置时,经常需要将一个文件或目录copy到同样的多台集群上,如果一个一个机器去复制,比较麻烦。如果有一个办法,通过一条命令就可以实现这个目的,就简单多了。xsync就是这样...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,628
精华内容 3,051
关键字:

xsync