添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

当我们对大量的文件做同步的时候,有时我们并不一定是需要目录中的所有文件,这时候我们就需要对这部分文件和目录(例如:临时文件或者缓存文件)进行剔除,使同步过来的文件中不包含这些杂质。下面要介绍的就是rsync传输时如何跳过指定文件或目录。

rsync传输文件的基础操作:
https://blog.csdn.net/GX_1_11_real/article/details/80395588

排除单个文件或目录

--exclude  指定跳过的源目录或文件的相对路径的目录或文件

将源目录作为根,而要跳过的目录相对于根的位置

格式:
rsync --exlude=要排除的目录或文件 源目录或文件 备份目录或文件

示例1:
文件路径为/root/php/lib,排除lib目录

rsync -av --exclude=/lib /root/php/ /root/php_back 
rsync -av --exclude '/lib' /root/php/ /root/php_back 

示例2:
文件路径为/root/php/var/log,排除log目录下文件

rsync -av --exclude=/var/log/* /root/php/ /root/php_back 
rsync -av --exclude '/var/log/*' /root/php/ /root/php_back 

示例3(排除多个):

文件路径为/root/php/var/log, /root/php/lib,排除lib和log目录

   rsync -av --exclude=/var/log --exclude=/lib /root/php/ /root/php_back 
   rsync -av --exclude '/var/log/*' --exclude '/lib'  /root/php/ /root/php_back 

–exclude-from指定的文件的格式有特定要求:
一行写一个要排除的目录或文件
使用把源目录作为根目录的相对路径
每行的末尾不可有空格

格式:
rsync --exlude-from=要排除的目录或文件列表 源目录或文件 备份目录或文件

示例1:
文件路径为/root/php/include, /root/php/lib,/root/php/var/log/,排除include和lib目录以及log下的.log结尾文件

rsync -av --exclude-from=/root/exclude.list /root/php/ /root/php_back
/root/exclude.list内容如下:
include
var/log/*.log
  一种是 --exclude "dir/"  一定要在目录后面加入 /
 一种是 --exclude-from=exfile;其中exfile 文件中写入目录名,一个目录一行,如:
cat exfile
dir1/
dir2/test/
exfile 一定要写全路径
                                    rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件目录,并适当利用差分编码以减少数据传输量。
我主要用rsync命令来两个目录文件,利用灵活的--exclude和--include参数可以从一个目录中单独同步某一类文件,并且支持匹配多种模式。下面主要记录一下如何方便的匹配多种模式。
exclude一种matching pattern
主要以同步服务器和本地目录为例,usern...
                                    在Linux系统中,rsync是一种强大的工具,用于文件目录的备份和同步。然而,在进行备份时,我们可能希望排除某些文件目录,例如临时文件、日志文件或其他不需要备份的内容。本文将介绍在Linux中使用rsync进行备份时如何排除文件目录的方法。
                                    近日在 Linux 环境中做版本迁移的时候遇到一个问题:需要将一个目录遍历拷贝到另一个目录中,但需要忽略其中的某些文件,由于目录中东西比较多,忽略的项也不好一一指定。普通的 cp 命令并没有排除某个文件文件夹的参数,比较丑陋点可以 cp -r 拷贝完目录之后再去删除无用的,但如果做批量脚本操作就不爽了,经过实际试验之后暂时找到两个比较好的方法。1、使用 rsync 进行拷贝:rsync 本来是文...
                                    先看下图中的场景,客户端A和B,以及服务器server都保存了同一个文件,最初,A、B和server上的文件内容都是相同的(记为File.1)。某一时刻,B修改了文件内容,上传到SERVER上(记为File.2)。客户端A这时试图向服务器SERVER更新文件到最新内容,也就是File.1更新为File.2。上面这个场景很常见,例如现在流行的网盘。假设我有一个文件a.txt在网盘上,上班时在公司的单位PC上更新了文件a.txt,下班后回到家里,家里PC硬盘上的a.txt就不是最新的内容,这时网盘就试图从服务器上去拿最新的a.txt了。那么问题来了,如果在公司电脑上我只是更新了a.txt里很少的一
                                    当需要把A服务器的/AAA 目录下的内容都传输到B服务器的/BBB目录下时可使用此功能(目前操作是已传输过去的内容不会再次传输,只会传输新的文件)、 步骤1、2都需要有网的情况下进行、并且要保障A和B服务器能ping通互相调用并且873端口要开启才能传输。
                                    scp传输会覆盖原有文件:sudo scp -r local root@host:remote
要增量传输可使用rsyncrsync -aWPu local root@host:remote,参数解释:
-a:档案模式,保留源文件的所有属性,并递归传输目录
-W:不进行增量传输,直接传输整个文件,在带宽较高时适用
-P:显示传输进度
-u:仅当源主机文件比目标主机中的文件更新时才传输
                                    rsync命令的介绍和使用方法不在此介绍,本处仅记录在使用时如何跳过不想要的大目录。背景如下:
1、ubuntu服务器新增了1T硬盘;
2、需要同步原有home目录下的用户目录到新硬盘挂载的硬盘目录(/home2);
3、同步跳过某一个用户(test)目录下的大文件目录(T3),需要跳过目录全路径为"/home/test/T3";
此时可以使用rsync的--exclude命令实现
它比scp更强大,支持“不覆盖”原目录
例子:rsync -avzt --progress /root/client/root@202.112.23.12:/home/work/   
    //将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程
例子:rsy...
                                    rsync 是类unix系统下的数据镜像备份工具, 它可以镜像保存整个目录树和文件系统。并且很容易做到保持原文件的权限,时间,软硬链接等等。
无须特殊权限即可安装。
快速、  第一次同步时会复制全部内容,但在下一次他只传修改过的文件,并且在传输过程中可以实行压缩及解压缩操作,因此可以使用更少带宽。安全、 可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket链接支持匿名传输,以方便进行网站镜像。首先
下载安装包
 代码如下:wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz    tar zxvf rsyn
                                    rsync它比scp更强大,支持“不覆盖”原目录例子:rsync -avzt --progress /root/client/root@202.112.23.12:/home/work///将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程例子:rsync -avzut --progress /root...
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模