c include 多层目录_Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?

55b51f4d0d339fbe5a60a9815d941db8.png

2b9ccbb8136fef66a8ef98a5cbb4bdb2.png

转自:高效运维

引言

Rsync 是一种快速且通用的命令行实用程序,可通过远程shell在两个位置之间同步文件和文件夹。使用 Rsync,可以镜像数据,创建增量备份,并在系统之间复制文件。复制数据时,你可能要根据文件名或位置排除一个或多个文件或目录。在本文中,我们将展示如何使用rsync排除文件和目录。

准备工作

先简要说一下 rsync 的工作流程和使用方法。在下面的示例中,我们使用rsync 的-a选项,这会递归同步目录,传输特殊设备和块设备,并保留符号链接,修改时间,组,所有权和权限。当排除文件或目录时,需要使用它们到源目录的相对路径。有两个选项可以指定要排除的文件和目录:
  • 在命令行中,使用--exclude选项。
  • 在文件中,使用--exclude-from选项。

排除特定文件

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

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

排除特定目录

排除特定目录与排除文件相同,只需将目录的相对路径传递给该--exclude选项,如下所示:

rsync -a --exclude 'dir1' 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.txtdir1/*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_directory/

参数含义:

  • -printf %P\\0\\n 将从src_directory/文件路径中删除。

  • --files-from=- 表示仅包含来自标准输入的文件(从find命令传递的文件)。

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

写在最后

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

良许个人微信

添加良许个人微信即送3套程序员必读资料

→ 精选技术资料共享

→ 高手如云交流社群

2a218f022b801b3d6f06cd6a5ee15891.png


本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!

推荐阅读:

Shell 监控文件变化

几句话,离职了

在大学城开一间宾馆能挣多少钱?

5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「1024」,即可免费获取!!

a1ae318bc5f8b66ce90ee7d312091d99.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第2章 一切都是对象

第2章一切都是对象 对象的定义(类型)、创建、存储、操纵、销毁、组成,引用(基本变量名)的初始化 2.1 用引用操纵对象 编程语言操纵内存中元素的方式: C、C:基于特殊语法的间接表示—指针 Java:操纵对象引用 ->对象 创建引用…

Lucene学习笔记(1)

Lucene学习笔记可以搜索文本文件,理论上可以搜索任何类型的数据。只要先把数据转化为文本,就可以对数据进行索引和搜索。使用了反向索引的机制,维护一个词/短语的表,对于每个词和短语都有一个链表描述有哪些文档包含这个词和短语。…

android 录音原始文件_5分钟短文 | Android证书生成,签名,验证,虽然难,但学一次就够了!...

引言从Android演进开始,APK签名就已经成为Android的一部分,并且android要求所有Apks都必须先签名,然后才能将其安装在设备上。关于如何生成密钥以及如何签名的文章很多。一个Apk,但我们将从安全角度进行研究。在对Apk文件进行反编…

WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...

尝试向 URI“http://localhost:8001/AccountService.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的…

【XSY2472】string KMP 期望DP

题目大意 给定一个由且仅由字符H,T构成的字符串\(S\)。 ​  给定一个最初为空的字符串\(T\) ,每次随机地在\(T\)的末尾添加H或者T。 问当\(S\)为\(T\)的后缀时,在末尾添加字符的期望次数。 对\({10}^97\)取模 题解 设\(f_i\)为从\(i-1\)匹配…

go语言api源码中文版_Go语言学习——sync.map源码剖析

1.简介 最近看了下Sync包,详读了sync.map源码,感觉源码实现还是比较巧妙的,有不少可以学习的地方;在讲源码前,先看下sync.map的"历史",从网上搜资料,sync.map是Go语言在1.9版本才引入…

JDK自带的log-java.util.logging

配置: 默认情况下,每个 FileHandler 都是使用以下 LogManager 配置属性执行初始化的。如果没有定义属性(或者属性具有非法值),则使用指定的默认值。 java.util.logging.FileHandler.level 为 Handler 指定默认的级别(默…

js实现添加className

obj.className ; //设置为新的obj.className ;//在原来的后面加这个obj.classList.add(" "); //与第一个等价 <style>#side_btn {width: 15%;left: 0;bottom: 5%;}#side_nav {width: 25%;left: -34%;top: 15%;transition: left 1s;text-align: center;}.nav_…

怎么成为日上会员直邮_18个日上直邮问题汇总,可以参考一下哦

前段时间发的日上直邮的微头条和视频&#xff0c;很多朋友遇到一些不明白的地方&#xff0c;我把问题汇总了一下&#xff0c;统一回答一下哦其实因为疫情&#xff0c;很多免税店都在做活动&#xff0c;活动方式不太一样&#xff0c;有好多种&#xff0c;我跟大家分享的只是其中…

IT网址大全

图像处理 [素材]   在线作图[素材]   思缘设计论坛[素材]   ps联盟[素材]   ps学习网[素材]   ps教程论坛[素材]   ps爱好者[素材]   46ps[素材]   勤学网[素材]   艺术字体转换器[模板]   视达千图[模板]   千图网[模板]   千库网[模板]   包图网[模板]   摄图网…

python中sort返回值_Python函数你真的都学会了吗?来看看这篇Python高阶函数!

二、高阶函数高级函数, 英文叫 Higher-order Function.那么什么是高阶函数呢?在说明什么是高阶函数之前, 我们需要对函数再做进一步的理解!2.1 函数的本质函数的本质是什么&#xff1f;函数和函数名到底是一种什么关系&#xff1f;在python中&#xff0c;一切皆对象&#xff0…

拿什么衡量能力?!

众所周知&#xff0c;计算机技术属于高科技的范畴&#xff0c;但不能说所有和计算机沾边的东西都可以称之为高科技&#xff0c;笔者前几天经历了一次面试&#xff0c;也许对于有的朋友来说&#xff0c;这样的经历司空见惯&#xff0c;但是我还是想一吐为快。 本人不才&#xff…

基于数据库的事务消息解决分布式事务方案

转载请注明出处&#xff1a;http://www.cnblogs.com/lizo/p/8516502.html 概述 当单库已不能支撑当前业务的时候&#xff0c;我们往往都考虑进行分库&#xff08;横向拆分或者纵向拆分&#xff09;。但分库有个无法回避的问题&#xff0c;就是事务问题。网上有很多分布式事务解…

websocket 发送给前端一个对象_前端WebSocket封装

场景1: 只有单个长链接&#xff0c;不要求保活class WebSocketClass {constructor() {this.instance null;this.connect();}static getInstance() {if (!this.instance) {this.instance new WebSocketClass();}return this.instance;}connect() {this.ws new WebSocket(ws:/…

POJ1683 Puzzlestan ——Floyd传递闭包+Dfs

好久没写Dfs了&#xff0c;拿来练手。 WA了一次&#xff0c;没有判断中间的情况…… 解法&#xff1a;先用Floyd传递闭包处理哪些点一定要在一起、哪些点一定不能在一起&#xff0c;六重循环。 然后深搜&#xff0c;res[i][j]表示1,i这个物品在j这一行的匹配物品列编号。 没有最…

中service层的作用_浅析Java中dto、dao、service、controller的四层结构

目前我所在的项目组采用的是SpringBoot框架&#xff0c;前端使用BootStrapjQuery。SpringBoot是BS开发框架之一&#xff0c;不用单独开启tomcat服务器&#xff0c;目前比较流行&#xff0c;一般开发大型项目时会将所有的功能细分为许多小模块&#xff0c;每个模块都有dto、dao、…

SCCM 2007系列教程之六使用组策略实现SCCM客户端

SCCM 2007 安装光盘上提供了名为 ConfigMgr2007Installation.adm 的组策略管理模板&#xff0c;可用于配置客户端计算机的安装属性。1、使用 Windows 组策略对象编辑器等编辑器来将管理模板 ConfigMgr2007Installation.adm 导入新的或现有的组策略对象。&#xff08;此文件可以…

强化学习

机器学习算法完整版见fenghaootong-github 强化学习原理&#xff08;RL&#xff09; RL与有监督学习、无监督学习的比较&#xff1a; 有监督的学习是从一个已经标记的训练集中进行学习&#xff0c;训练集中每一个样本的特征可以视为是对该situation的描述&#xff0c;而其labe…

python的tool模块_barktools-包含各种有用的python模块和脚本的包-Oscar Bark Modules Scripts...

作者:Oscar Bark### 作者邮箱:kurshid.ognianovprotonmail.com### 首页:https://github.com/BarkenBark/python-tools### 文档:None### 下载链接# barktoolsA collection of utilities I find useful. Yes.Modulesbase_utilsA collection of modules which only depend on the …

非常不错的Nodejs工具:http-console

http-console是一个用nodejs写的类似于CURL的第三方库文件. 可以很直观的发送http请求以及查看返回结果. 安装需求: 1, 安装nodejs 2, 安装npm 3, npm install http-console 我做了个简单的例子: 启动: http-console 127.0.0.1:3000 1, HTTP GET: http://127.0.0.1:3000/&g…