引言

Rsync 是一种快速且通用的命令行实用程序,可通过远程shell在两个位置之间同步文件和文件夹。

使用 Rsync,可以镜像数据,创建增量备份,并在系统之间复制文件。复制数据时,你可能要根据文件名或位置排除一个或多个文件或目录。

在本文中,我们将展示如何使用rsync排除文件和目录。

准备工作

先简要说一下 rsync 的工作流程和使用方法。

在下面的示例中,我们使用rsync 的-a选项,这会递归同步目录,传输特殊设备和块设备,并保留符号链接,修改时间,组,所有权和权限。

当排除文件或目录时,需要使用它们到源目录的相对路径。

有两个选项可以指定要排除的文件和目录:

  • 在命令行中,使用–exclude选项。
  • 在文件中,使用–exclude-from选项。

排除特定文件

要排除特定文件,请将文件的相对路径传递给该–exclude选项。在以下示例中,文件 src_directory/file.txt 将不会被传输:

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

如果要排除目录内容但不排除目录本身,请使用dir1/*代替dir1:

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

排除多个文件或目录
要排除多个文件或目录,只需指定多个–exclude选项:

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude
'dir2' src_directory/ dst_directory/

如果您希望使用单个--exclude选项,则可以用 {}将要排除的文件和目录列出,并用逗号分隔,如下所示:

rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

如果要排除的文件和/或目录的数量很多,则—exclude可以使用要在文件中排除的文件和目录,而不是使用多个选项。只需将文件传递给该—exclude-from选项。

下面的命令与上面的命令完全相同:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/

在 exclude-file.txt 内存储这些内容:

file1.txt
dir1/*
dir2

根据正则模式排除多个文件或目录

使用rsync,你还可以根据与文件或目录名称匹配的模式排除文件和目录。
例如,要排除所有.jpg文件,请运行:

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

排除与特定模式匹配的文件和目录之外的其他所有文件和目录并不困难。假设你要排除所有其他文件和目录,但以 .jpg 结尾的文件除外。

一种选择是使用以下命令:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

使用多个include/exclude选项时,将应用第一个匹配规则。参数含义:

  • --include='*.jpg'首先,我们包括所有.jpg文件。
  • --include='*/'然后,我们将所有目录都包含在in src_directory目录中。
  • 没有这个rsync只会复制*.jpg顶级目录中的文件。
  • -m删除空目录
    另一个选择是将 find 命令的输出传递给 rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_director

参数含义:

  • -printf %P\\0\\n将 从src_directory/文件路径中删除。
  • --files-from=-表示仅包含来自标准输入的文件(从find命令传递的文件)。

如果第一张方式难以掌控的话,那么这个 find 指令所做的筛选,对于运维同学应该友好的多了。

写在最后

rsync 一旦数量使用了之后,甚至应该替代 scp ,成为我们日常在本地到服务器,服务器之间,目录和文件同步的标准工具。

Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?的更多相关文章

  1. Rsync文件同步机备份工具使用

    一,Rsync简介 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步的优秀工具.适用于多种操作平台. 全称是Remote synchronization 具有可使本地和远 ...

  2. 实时备份工具之inotify+rsync

    1.inotify简介 inotify 是一个从 2.6.13 内核开始,对 Linux 文件系统进行高效率.细粒度.异步地监控机制, 用于通知用户空间程序的文件系统变化.可利用它对用户空间进行安全. ...

  3. Linux基础学习-数据备份工具Rsync

    数据备份工具rsync 作为一个系统管理员,数据备份是非常重要的,如果没有做好备份策略,磁盘损坏了,那么你的数据将全部丢失,所以在日常的维护工作中,一定要时刻牢记给数据做备份. rsync不仅可以可以 ...

  4. Linux系统备份还原工具4(rsync/远程数据同步工具)

    rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http:/ ...

  5. linux下的数据备份工具rsync讲解

    linux下的数据备份工具 rsync(remote sync 远程同步)   名词解释: sync(Synchronize,即“同步”)为UNIX操作系统的标准系统调用,功能为将内核文件系统缓冲区的 ...

  6. Rsync数据备份工具

    Rsync数据备份工具 1.Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步(windows和Linux之间 Mac和 Linux Linux和Linux),可实现全量备 ...

  7. SQLSERVER自动定时(手动)备份工具

    最近项目需要,写了一个小工具软件: 1.实时显示监控 2.可多选择备份数据库 3.按每天定时备份 4.备份文件自动压缩 5.删除之前备份文件 直接上图 1.备份监控界面: 2.数据库设置: 附工具下载 ...

  8. mysql和mariadb备份工具xtrabackup和mariabackup(mariadb上版本必须用这个)

    简介 xtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server ...

  9. 超全Linux备份工具集合,满足你的所有需要!

    经常备份计算机上的数据是个好的做法,它可以手动完成,也可以设置成自动执行.许多备份工具拥有不同的功能特性,让用户可以配置备份类型.备份时间.备份对象.将备份活动记入日志及执行更多操作. 1.Rsync ...

  10. MySQL 5.7 mysqlpump 备份工具说明

    背景: MySQL5.7之后多了一个备份工具:mysqlpump.它是mysqldump的一个衍生,mysqldump就不多说明了,现在看看mysqlpump到底有了哪些提升,可以查看官方文档,这里针 ...

随机推荐

  1. 【转载】pip install 使用多个.local环境

    原文地址: https://zhuanlan.zhihu.com/p/351468170 ================================ 我们都知道anaconda可以安装不同的py ...

  2. 伪代码中ties broken arbitrarily是什么含义?

    最近在看一个物联网的论文,论文的伪代码中有这么一个地方标有:ties broken arbitrarily,对这个写法有些搞不清楚含义,于是网上找到了下面的资料: https://www.zhihu. ...

  3. SMU Spring 2023 Contest Round 4(第 21 届上海大学程序设计联赛 春季赛)

    A. Antiamuny wants to learn binary search 签到题. #include <map> #include <set> #include &l ...

  4. 5. RCC

  5. 卡农 -- HNOI2011 -- DP&组合

    卡农 -- \(HNOI2011\) $$luogu$$ $$HZOI$$ 题意 给定一个 集合 $ A= { 1 \le x \le n | x } $ , 求出其 \(m\) 个不相同的且不为空集 ...

  6. Redis实战-session共享之修改登录拦截器

    在上一篇中Redis实战之session共享,我们知道了通过Redis实现session共享了,那么token怎么续命呢?怎么刷新用户呢?本来咱们就通过拦截器来实现这两个功能. 登录拦截器优化: 凯哥 ...

  7. 使用Pandas和NumPy实现数据获取

    公众号本文地址:https://mp.weixin.qq.com/s/Uc4sUwhjLTpOo85ubj0-QA 以某城市地铁数据为例,通过提取每个站三个月15分钟粒度的上下客量数据,展示Panda ...

  8. 即构音视频 Express Flutter SDK 全面支持空安全

    Flutter 是一套移动 UI 框架,可以快速在 iOS.Android 上构建高质量的原生用户界面.作为其官方语言 Dart 是类型安全的,当开发者获取变量的时候,编译器可以保证变量的类型,但类型 ...

  9. C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  10. 图解MQTT概念、mosquitto编译和部署 ,写代码,分别使用外网和本地服务器进行测试

    前沿提要: MQTT是什么不知道? 看这一篇:https://www.cnblogs.com/happybirthdaytoyou/p/10362336.html 阿里云官网玩不转? 看这一篇: ht ...