rsync只同步指定目录的方法(已测)

 更新时间:2024年03月25日 18:00:41   投稿:mdxy-dxy  
今天在配置文件同步的时候,只需要同步指定目录,因为一些目录是不需要同步的而且数量比较大,这里简单分享下–include参数的使用

有时候我们需要同步一些目录或者不同步一些目录,一些文件,那么就可以参考下面的用法了

参数说明

在做同步之前必须要知道的含义:

文件

--exclude='*'   排除所有文件,包括目录,因为在linux一切皆文件,代表排除所有
--exclude='*/'   排除所有目录
--include='*/'    包含所有目录
--include='*'     包含所有文件,包括目录,因为在linux一切皆文件,代表包含所有

上面这些写到命令里面,不如下面的通过文件配置更适合多个目录与文件 

目录

--include-from 或 --files-from 只同步部分目录

--exclude-from 不同步这些目录

先创建一个 tongbu.txt 支持文件与目录,规则写法支持正则表达式

/a

/b

/index.htm

--files-from="tongbu.txt"

rsync同步指定目录

rsync使用–include参数与–exclude参数来实现同步指定目录,并且–exclude目录放在后面。

例如:

linux上文件目录

ls /usr/local/apache/htdocs/site
aa
bb
cc
dd
ee
..
zz

只想同步aa,bb,ee这三个目录,其他的不同步。

实现代码:

/usr/local/rsync/bin/rsync -azv  --include "aa/" --include "bb/" --include "ee"  --exclude "/*"  --progress rsync://127.0.0.1/site /work/backup/htdocs_bak/site

说明:

--include “aa/” --include “bb/” --include “ee” 包含了你要同步的目录 –exclude包含了不同步的目录所有用“/*”指定。

--exclude “/*” 除了–include同步的目录外,排除其他目录

rsync://127.0.0.1/site 为你rsync服务端要同步的目录
/work/backup/htdocs_bak/site 为你客户端的目录

rsync同步指定正则文件(含子目录)

前阵子做日志备份,把各个服务器上的日志同步到日志服务器上做备份,刚开始比较暴力,把所有压缩好的*gz文件全部传送到日志备份服务器上。后来,发现这种方式非常不好,一旦备份的目录发生改变,服务器上又会把它所有的*gz文件全部再传一遍,即浪费时间又给服务i/o产生不必要的压力,后来想只同步某天的*gz文件。

 需求描述:

有一个类似于这样的目录结构,子目录的个数是不确定的

[root@IND_ tlbb]# tree
.
|-- ReadMe.txt
| |-- Audit
| `-- Money_2013-09-10.tgz
|-- Audit_2013-09-10.tgz
`-- Install

我想同步*.py结尾的东东

同步完成后

[root@IND_ tlbb]# tree
.
|-- Audit
| `-- Money_2013-09-10.tgz
`-- Audit_2013-09-10.tgz

方式1:(失败)

rsync -auvz –include=”*${YDate}*gz ” ./ 192.168.137.22::tlbb

结果:会把所有的文件都同步过去了,连Install都同步过去了

方式2:

rsync -aruvz –include=”*${YDate}*gz” –include=”*/” –exclude=”*” ./* 192.168.137.22::tlbb

结果:能把今天所有的gz文件都正常传过去喽,先允许所有的匹配的gz文件,再允许所有子目录,最后拒绝所有其他的。

看到这里的朋友大家肯定发现了如果文件夹过多,肯定比较累,直接弄个txt文件将需要同步的与不需要同步都分别弄下就更好了,下面的方法在4.10版本中测试正常

实例篇

1、只同步制定目录

如果当前目录文件夹有aa,bb,cc,dd等很多文件夹,我们只同步aa,bb,cc

先新建一个txt文件,例如 include.txt

/aa
/bb
/cc

只需要这么写就可以了--files-from="include.txt"

@echo off
rsync -vzrtopg --progress --no-super --files-from="include.txt" --password-file=wtjb51.secrets /cygdrive/g/www/filesjb51net/web/ jb51@ip::filesjb51

2、不要同步哪些同步

新建一个exclude.txt文件,不同步dd文件夹

复制代码 代码如下:

dd

--exclude-from=exclude.txt

使用rsync -aP --exclude=upload 只能排除upload文件/目录。
如果要排除多个文件/目录,怎么办?
那只能建一个exclude.list,里面填写要排除的目录(一行一个文件/目录),然后rsync -aP --exclude-from=“exclude.list“

如:rsync -aP --exclude-from=/root/exclude.list 192.168.113.118::web_bak/www/ /data/server/www/ (从118同步数据到本机)

@echo off
rsync -vzrtopg --progress --no-super --password-file=wtjb51.secrets --exclude-from="nolitpic.txt" /cygdrive/e/webroot/wwwjb51net/do/uploads/litimg/ wtjb51@192.168.1.9::wwwjb51douploadlimit

nolitpic.txt

/08*
/09*
/1*
/20*
/21*
/22*
/2301*
/2302*

补充

--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE

补充:

rsync -vau --files-from="/root/syncto.txt" --exclude-from="/root/excludefile.txt" /data/web/ root@192.168.11.12:/data/web/用这种方式就可以了,其中syncto.txt写入要同步的文件,execludefile.txt存不需要同步的文件

相关文章

  • Apache Hudi基于华米科技应用湖仓一体化改造

    Apache Hudi基于华米科技应用湖仓一体化改造

    这篇文章主要介绍了Apache Hudi基于华米科技应用湖仓一体化改造 ,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • MongoDB学习笔记(五) MongoDB文件存取操作

    MongoDB学习笔记(五) MongoDB文件存取操作

    由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中
    2013-07-07
  • 阿里云服务器部署RabbitMQ集群的详细教程

    阿里云服务器部署RabbitMQ集群的详细教程

    本文是对 RabbitMQ 进阶 阿里云服务器部署RabbitMQ集群简单的概述,搭建集群达到消息的高可用,高可靠,可以提高吞吐量,集群部署是一个很不错的选择,镜像队列集群,这个我们可以根据配置来进行同步规则,根据需求来定制化我们的规则,感兴趣的朋友一起看看吧
    2022-05-05
  • 服务器安装Macfee(麦咖啡)杀毒软件后可能出现的问题

    服务器安装Macfee(麦咖啡)杀毒软件后可能出现的问题

    这篇文章主要介绍了服务器安装Macfee(麦咖啡)杀毒软件后可能出现的问题,需要的朋友可以参考下
    2015-10-10
  • centos6.4+nginx+mysql+php+phpmyadmin整合过程详解

    centos6.4+nginx+mysql+php+phpmyadmin整合过程详解

    这篇文章主要介绍了centos6.4+nginx+mysql+php+phpmyadmin整合过程,较为详细的分析了centos6.4+nginx+mysql+php+phpmyadmin整合的具体步骤、操作指令与相关实现技巧,需要的朋友可以参考下
    2016-11-11
  • ansible管理工具的环境及部署安装

    ansible管理工具的环境及部署安装

    这篇文章主要为大家介绍了管理工具ansible的环境安装及部署过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • 服务器Apache与Tomcat和Nginx的理解和对比分析详解

    服务器Apache与Tomcat和Nginx的理解和对比分析详解

    今天小编就为大家分享一篇关于服务器Apache与Tomcat和Nginx的理解和对比分析详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Caddy 一个用Go实现的Web Server

    Caddy 一个用Go实现的Web Server

    这篇文章主要介绍了Caddy 一个用Go实现的Web Server,简洁易用,需要的朋友可以参考下
    2016-11-11
  • CentOS 服务器如何配置时间

    CentOS 服务器如何配置时间

    这篇文章主要介绍了CentOS 服务器如何配置时间,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • http状态码汇总及问题经验总结

    http状态码汇总及问题经验总结

    网站的http状态对于网站维护人员来说是相当重要的,当网站出现问题的时候,我们首先要诊断一下网站的http状态,从而进一步确认哪里出现的问题
    2013-11-11

最新评论