CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了centos – 如何使用Rsync仅复制特定的子目录(几个目录中的相同名称)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在服务器1上有这样的目录结构: >数据 >公司1 > unique_folder1 > other_folder > … 公司2 > unique_folder1 > … > … 而且我想在服务器2上重复此文件夹结构,但只复制unique_folder1的目录/子目录.即结果必须是: >数据 >公司1 > unique_folder1 公司2 > unique_folder1 > … 我知道rs
我在服务器1上有这样的目录结构:

>数据

>公司1

> unique_folder1
> other_folder
> …

公司2

> unique_folder1
> …

> …

而且我想在服务器2上重复此文件夹结构,但只复制unique_folder1的目录/子目录.即结果必须是:

>数据

>公司1

> unique_folder1

公司2

> unique_folder1

> …

我知道rsync是非常好的.
我已经尝试’包括/排除’选项没有成功.

例如.我试过了

rsync -avzn --list-only --include '*/unique_folder1/**' --exclude '*' -e ssh user@server.com:/path/to/old/data/ /path/to/new/data/

但是,结果,我没有看到任何文件/目录:

receiving file list ... done
sent 43 bytes  received 21 bytes  42.67 bytes/sec
@R_174_10586@l size is 0  speedup is 0.00 (DRY RUN)

怎么了?想法?

附加信息:
我有sudo访问这两个服务器.我有一个想法是使用find命令和cpio一起拷贝到我需要的内容的新目录,之后使用Rsync.但这很慢,有很多文件

我找到原因对于我来说,Rsync以这种方式工作并不清楚.
所以正确的命令(仅适用于company1目录)必须是:
rsync -avzn --list-only --include 'company1/' --include 'company1/unique_folder1/***' --exclude '*' -e ssh user@server.com:/path/to/old/data/ /path/to/new/data

即我们需要包括每个母公司目录.当然,我们无法在命令行中手动编写所有这些公司目录,所以我们将列表保存到文件中并使用它.

我们需要做的最后的事情

1.在服务器1上生成包含文件,因此其内容将(我使用过ls和awk):

+ company1/  
+ company1/unique_folder1/***  
...  
+ companyN/  
+ companyN/unique_folder1/***

2.将include.txt复制到服务器2并使用以下命令:

rsync -avzn                                        \
      --list-only                                  \
      --include-from '/path/to/new/include.txt'    \
      --exclude '*'                                \
      -e ssh user@server.com:/path/to/old/data/    \
      /path/to/new/data

大佬总结

以上是大佬教程为你收集整理的centos – 如何使用Rsync仅复制特定的子目录(几个目录中的相同名称)全部内容,希望文章能够帮你解决centos – 如何使用Rsync仅复制特定的子目录(几个目录中的相同名称)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。