centos – 如何使用Rsync仅复制特定的子目录(几个目录中的相同名称)

我在服务器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
total 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工作在无互联网的环境下,需要在离线环境下安装一些组件,这次实现的是模拟在离线环境下安...
首先参照https://www.cnblogs.com/wdw984/p/13330074.html,来进行如何安装Centos和离线下载rpm包。 离...
有两个.NET CORE3.1网站部署在CentOS7上(内网IP是192.168.2.32),现在想实现访问http://192.168.2.32...
1、yum -y install vsftpd 安装vsftpd 2、配置vsftpd的配置文件(/etc/vsftpd/vsftpd.conf)主要修改以...
首先去mysql官网下载mysql的离线rpm安装包(https://downloads.mysql.com/archives/community/) Mysql...
第一步下载erlang环境并安装: wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_...