若是需要复制的目录下只有文件,只执行第二条命令就好
先拷贝目录结构
rsync -av -f"+ */" -f"- *" . 10.1.11.80:/share/k8s-storage/db/alpha/master/data
rsync
: 用于高效地同步文件和目录。-a
: 归档模式,递归地复制目录,同时保留符号链接、权限、时间戳和其他文件属性。-v
: 显示详细输出,显示正在处理的文件。-f"+ */"
: 包括所有的目录,这个过滤器规则告诉rsync
只同步目录。-f"- *"
: 排除所有的文件,这个过滤器规则告诉rsync
不要同步文件。.
: 当前目录。10.1.11.80:/share/k8s-storage/db/alpha/master/data
: 目标路径,远程服务器上的目录。
添加 ropo 源,下载 parallel
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://archives.fedoraproject.org/pub/archive/epel/7/$basearch
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/debug
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
yum update && yum install -y parallel
再多进程拷贝文件
find . -type f | parallel -j 16 rsync -avP --relative {} 10.1.11.80:/share/k8s-storage/db/alpha/master/data
find . -type f
: 查找当前目录下的所有文件,-type f
仅查找文件。parallel -j 16
: 使用parallel
工具来并行执行命令,-j 16
指定同时运行 16 个任务(即 16 个并行的rsync
进程)。rsync -avP --relative {}
: 对每个文件执行rsync
命令:
-a
: 归档模式,递归地复制文件,同时保留符号链接、权限、时间戳等属性。-v
: 显示详细输出。-P
: 显示进度条,并允许重新启动传输中断的文件。--relative {}
: 保留文件的相对路径。{}
是parallel
提供的占位符,表示当前处理的文件。10.1.11.80:/share/k8s-storage/db/alpha/master/data
: 目标路径,远程服务器上的目录。