山那边是海 发表于 2015-1-16 16:45:09

给大家带来rsync详解之exclude扫除文件

对于linux命令,一定要学会用man和info去查他们的解释;
成绩:怎样避开同步指定的文件夹?--exclude

rsync--excludefilesandfolders
http://articles.slicehost.com/2007/10/10/rsync-exclude-files-and-folders
很罕见的情形:我想同步/下的/usr/boot/,可是不想复制/proc/tmp这些文件夹
假如想避开某个路径间接增加--exclude便可
好比--exclude“proc”
--exclude‘sources
Note:thedirectorypathisrelativetothefolderyouarebackingup.
注重:这个路径必需是一个绝对路径,不克不及是相对路径

例子:源服务器/home/yjwan/bashshell有一个checkout文件夹
#ls-dlcheckout
drwxr-xr-x2rootroot4096Aug2109:14checkou
如今想要完整避开复制这个文件夹内容怎样办?
方针服务器实行
rsync-av--exclude“checkout”yjwan@172.16.251.241:/home/yjwan/bashshell/tmp
将不会复制这个文件夹
#ls-d/tmp/bashshell/checkout
ls:/tmp/bashshell/checkout:Nosuchfileordirectory

注重:

1现实上,体系会把文件和文件夹厚此薄彼,假如checkout是一个文件,一样不会复制

2假如想避开复制checkout内里的内容,能够这么写--exclude“checkout/123”

3牢记不成写为--exclude“/checkout”如许相对路径
如许写将不会制止checkout被复制
好比
#rsync-av--exclude“/checkout”yjwan@172.16.251.241:/home/yjwan/bashshell/tmp
receivingfilelist…done
bashshell/checkout/

4可使用通配符避开不想复制的内容
好比--exclude“fire*”
那末fire打头的文件大概文件夹全体不会被复制
5假如想要避开复制的文件过量,能够这么写
--exclude-from=/exclude.list

exclude.list是一个文件,安排的地位是相对路径的/exclude.list,为了不出成绩,最好设置为相对路径。

内里的内容必定要写为绝对路径

好比我想避开checkout文件夹和fire打头的文件

那末/exclude.list写为
checkout
fire*
然后实行以下命令,注重写为--exclude-from大概--exclude-from=都能够
可是不克不及为--exclude
rsync-av--exclude-from=”/exclude.list”yjwan@172.16.251.241:/home/yjwan/bashshell/tmp
反省了局:的确避开了checkout文件夹和fire打头的文件

成绩:怎样盘算对照复制今后的文件数目是不是准确呢?

1检察毛病日记,看是不是复制时分出成绩了
2在源服务器实行可晓得详细文件和文件夹的总个数
lsCAlR|grep“^[-d]”|wc
然后方针服务器在盘算一遍个数
看看数字是否是能对的上就ok了
对不上再研讨怎样回事
3如今的成绩是:假如我利用了--exclude参数就贫苦了

我怎样晓得要复制几个文件?

起首,后面命令时分提到过一种写法,就是只要源地点,没有方针地点的写法,这类写法能够用来列出一切应当被复制的文件

那末用这个命令,能够盘算出这个/root/bashshell上面文件和文件夹数目

在服务器端实行

#rsync-av/root/bashshell/|grep“^[-d]”|wc
623104249
和ls失掉的了局分歧的
#ls-AlR|grep“^[-d]“|wc
625583731
因而,好比说我不要fire打头的文件,能够在服务器端先如许盘算要复制的文件
#rsync-av--exclude“fire*”/root/bashshell/|grep“^[-d]”|wc
442202695
然后复制已往
看方针呆板的文件和文件夹数目为
#ls-AlR/tmp/bashshell/|grep“^[-d]“|wc
443962554
能够晓得2者是同步的

成绩:Rsync的其他几个罕见参数
1
-zCcompresscompressfiledataduringthetransfer
--compress-level=NUMexplicitlysetcompressionlevel
--skip-compress=LISTskipcompressingfileswithsuffixinLIST
紧缩传输,假如收集带宽不敷,那末应当紧缩今后传输,损耗确当然是呆板资本,可是假如内网传输的话,文件数目不是良多的话,这个参数不用要的。
2
--password-file=FILE
后面说过了,只要远端呆板是rsync服务器,才干用这个参数
假如你觉得个FILE写的是ssh上岸的暗码,那就年夜错特错了,很多人犯了这个毛病。
3
Cstats:Addsalittlemoreoutputregardingthefiletransferstatus.
4
Cprogress:showstheprogressofeachfiletransfer.Canbeusefultoknowifyouhavelargefilesbeingbackupup.

关于这个参数:

Ifrequentlyfindmyselfaddingthe-Poptionforlargetransfers.Itpreservespartialtransfersincaseofinteruption,andgivesaprogressreportoneachfileasitsbeinguploaded.
Imovelargemediafilesbackandforthonmyservers,soknowinghowlongthetransferhasremainingisveryuseful.
•PreviousEntry:nginx天天准时切割Nginx日记的剧本
•NextEntry:怎样开启MySQL的远程帐号
学习linux,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解。

愤怒的大鸟 发表于 2015-1-18 16:59:40

查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。

飘灵儿 发表于 2015-1-26 23:10:18

要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。

精灵巫婆 发表于 2015-2-5 00:52:43

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。

变相怪杰 发表于 2015-3-1 19:14:21

尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

小女巫 发表于 2015-3-10 22:42:11

Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一。

深爱那片海 发表于 2015-3-17 12:10:00

为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?

因胸联盟 发表于 2015-3-24 10:53:00

学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
页: [1]
查看完整版本: 给大家带来rsync详解之exclude扫除文件