zoukankan      html  css  js  c++  java
  • 集群分发脚本 xsync

    1. scp(secure copy)安全拷贝

      (1)scp定义:

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

      (2)基本语法

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

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

      (3)示例

        [hadoop@hadoop01 /]$ scp -r /opt/module  root@hadoop02:/opt/module

    2. rsync 远程同步

      (1)rsync定义:

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

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

      (2)基本语法

         rsync     -rvl          $pdir/$fname                $user@hadoop$host:$pdir/$fname

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

       选项参数说明:

    选项

    功能

    -r

    递归

    -v

    显示复制过程

    -l

    拷贝符号连接

     

     

     

     

     

      (3)示例

        [hadoop@hadoop01 /]$ rsync -rvl /opt/software/ root@hadoop02:/opt/software

    3. xsync集群分发脚本

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

           (2)需求分析:

        (a)rsync命令原始拷贝:

          rsync  -rvl        /opt/module          hadoop@hadoop02:/opt/

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

                  (b)期望脚本:xsync要同步的文件名称

                  (c)说明:在/home/hadoop/bin这个目录下存放的脚本,hadoop用户可以在系统任何地方直接执行。

      (3)脚本实现

        (a)在/home/hadoop目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:

    [hadoop@hadoop01 ~]$ mkdir bin

    [hadoop@hadoop01 ~]$ cd bin/

    [hadoop@hadoop01 bin]$ touch xsync

    [hadoop@hadoop01 bin]$ vi xsync

         在该文件中编写如下代码:   

     1 #!/bin/bash
     2 #1 获取输入参数个数,如果没有参数,直接退出
     3 pcount=$#
     4 if((pcount==0)); then
     5 echo no args;
     6 exit;
     7 fi
     8 
     9 #2 获取文件名称
    10 p1=$1
    11 fname=`basename $p1`
    12 echo fname=$fname
    13 
    14 #3 获取上级目录到绝对路径
    15 pdir=`cd -P $(dirname $p1); pwd`
    16 echo pdir=$pdir
    17 
    18 #4 获取当前用户名称
    19 user=`whoami`
    20 
    21 #5 循环
    22 for((host=2; host<=3; host++)); do
    23         echo ------------------- hadoop$host --------------
    24         rsync -rvl $pdir/$fname $user@hadoop0$host:$pdir
    25 done

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

          [hadoop@hadoop01 bin]$ chmod 777 xsync

        (c)调用脚本形式:xsync 文件名称

          [hadoop@hadoop01 bin]$ xsync /home/hadoop/bin

    注意:如果将xsync放到/home/hadoop/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。

  • 相关阅读:
    (005)Linux 复制命令cp总提示是否覆盖的解决方法,在cp前加
    (030)Spring Boot之RestTemplate访问web服务案例
    Gym
    Gym
    Gym.102006:Syrian Collegiate Programming Contest(寒假自训第11场)
    BZOJ-5244 最大真因数(min25筛)
    HDU
    HDU 1272 小希的迷宫(并查集)
    HDU 3038 How Many Answers Are Wrong(带权并查集)
    POJ 1182 食物链(带权并查集)
  • 原文地址:https://www.cnblogs.com/smandar/p/13898073.html
Copyright © 2011-2022 走看看