zoukankan      html  css  js  c++  java
  • linux parallel rsync 拷贝N多文件

    先来个对比图看一下, 左边图是普通 rsync 目录拷贝, 右边图是借助 parallel 工具并发起了多个 rsync

    centos6.5安装 parallel

    #!/bin/bash
    
    # Install parallel on CentOS 6.
    # Assumes you are root. Prefix w/ sudo if not.
    
    cd /etc/yum.repos.d/
    #wget http://download.opensuse.org/repositories/home:tange/CentOS_CentOS-5/home:tange.repo
    wget http://download.opensuse.org/repositories/home:/tange/CentOS_CentOS-6/home:tange.repo
    yum install parallel

    开始 rsync 拷贝文件 [从/data/ 拷贝到 /hadoop/]

    [10 ~]$ df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root   50G  6.1G   41G  13% /
    tmpfs                          32G   12K   32G   1% /dev/shm
    /dev/sda1                     485M   39M  421M   9% /boot
    /dev/mapper/VolGroup-lv_home  5.5G  140M  5.1G   3% /home
    /dev/mapper/data-apps          12T  5.2T  6.7T  44% /data
    /dev/mapper/bigdata-hadoop     12T  3.5T  8.3T  30% /hadoop

    如果用普通的 rsync, 再加上很多小文件,一晚上只传了1T 多点,使用 parallel 工具 1小时大概传了500G

    cd /data
    find . -type f | parallel 'mkdir -p /hadoop/{//}; rsync -a {} /hadoop/{}'

     **注意** 

    上面的 find 命令哪里,最好用 root 用户, 这样同步完你会发现所有文件夹的属主和属组都是 root, 所以还需要再用 rsync 同步一遍权限

    rsync -a /data /hadoop

     扩展:

    如果是不同机器间,命令如下

    cd /data 
    find . -type f | parallel "rsync -a -e 'ssh -p 3299' --rsync-path='mkdir -p /data{//} && rsync' {} 192.168.0.100:/data/{}"
    

      

  • 相关阅读:
    CUDA和cudnn的环境变量设置问题
    zsh-Ubuntu更实用终端
    应用安全
    应用安全
    应用安全
    操作系统
    应用安全
    应用安全
    操作系统
    密码学
  • 原文地址:https://www.cnblogs.com/txwsqk/p/7570162.html
Copyright © 2011-2022 走看看