首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有相同结构的Rsync特定Direcotries和文件

问具有相同结构的Rsync特定Direcotries和文件
EN

Server Fault用户
提问于 2012-05-27 10:47:33
回答 2查看 531关注 0票数 2

我想用相同的结构rsync特定的目录和文件。

例如:-

代码语言:javascript
复制
source/
source/110/var/lib/mysql
source/110/var/lib/mysql
source/110/var/lib/mysql
source/110/home
source/110/bin/
source/110/etc/
source/120/var/lib/mysql
source/120/var/lib/mysql
source/120/var/lib/mysql
source/120/home
source/120/bin/
source/120/etc/

如何使用rysnc mysql和主目录以及direcotry中包含的文件到同一个目标文件夹,并具有相同的结构,如下所示:

代码语言:javascript
复制
destination/
destination/110/var/lib/mysql
destination/110/home
destination/120/var/lib/mysql
destination/120/home

谢谢

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-05-27 10:56:13

你可以用一些花哨的过滤器来做。手册页有一个很好的例子,但是使用最近的rsync (>= 2.6.7),您可以这样做:

代码语言:javascript
复制
rsync -a source/ destination/ \
    -f '+ /*/' \
    -f '+ /*/home/***' \
    -f '+ /*/var/' \
    -f '+ /*/var/lib/' \
    -f '+ /*/var/lib/mysql/***' \
    -f '- *'

换句话说,列出要包含在同步中的目录,然后排除所有其他目录。***通配符非常有用,但是如果rsync较旧,则必须用以下两个替换+ /*/home/***筛选器:

代码语言:javascript
复制
    -f '+ /*/home/' \
    -f '+ /*/home/**' \
票数 2
EN

Server Fault用户

发布于 2012-05-27 15:27:34

下面是使用过滤器的另一种选择:

代码语言:javascript
复制
cd source && \
rsync -aR  110/var/lib/mysql  110/home  120/var/lib/mysql  120/home  destination

也就是说,将所有源目录作为参数传递给rsync,然后是目标目录,它们都在一个命令中。在这种情况下,您必须确保使用-R选项,以便在目标中保留源目录路径。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/393085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档