rsync同步文件总结
缘起
其实使用rsync
在群辉、linux上备份文件挺长时间了,期间也没啥问题,并且rsync可以同步属性、文件日期等等,用起来非常方便。
这里就把折腾过程中沉淀下来的几个场景、命令记录下,方便以后查看使用。
使(折腾)用场景
0、日常使用命令
rsync --progress --ignore-errors -avihPH /b/* ./
这个是日常使用最多的命令,用于归档很好用,其中这里的PH
参数是需要的。
最近在相同容量、相同ext4参数(参考我的上一篇文章)情况下,使用rsync同步目录后,发现居然目标硬盘存储的文件更少,即在没有完成情况下就满了。
最终折腾很久,发现是一些硬链接文件、稀疏文件(比如一些预分配的文件)导致目标文件比源文件还大(源文件是一个比标称大小小的空间)
加上PH
参数这个问题就解决了,参考这里
1、dry-run
有的时候想要对比下源目录和目标目录到底有哪些差异文件,但是又不想实际跑一遍,那么dryrun即可
rsync --progress --ignore-errors -avihPH /b/* ./ --dry-run
2、删除目标目录多余文件(慎用)
有时候,我们希望目标目录是完全和源目录相同,这样的话就需要先删除目标目录多余的文件,可以使用--delete-before
参数。
rsync --progress --ignore-errors -avihPH /b/* ./ --delete-before
3、排除不需要同步的文件夹
有时候我们不需要同步一些文件夹,增加--exclude
即可(可以忽略多个)
rsync --progress --ignore-errors -avihPH --exclude 'd' --exclude 'e' --exclude 'a' /b/aa ./
4、checksum检查文件一致性
这个参数一般不使用,因为用了会很慢,默认rsync会使用文件修改时间、文件大小确定是否一致,增加--checksum
rsync --progress --ignore-errors --checksum -avihPH /b/aa ./
5、压缩传输
这个参数一般不使用,但是在传输vps等远程文件时,使用可能有效降低传输文件大小,使用--compress
参数
rsync --progress --ignore-errors --compress -avihPH /b/aa ./
总结
rsync在linux世界里,真香!
,包括跨主机传输,真的不要太方便。
参考文档
https://phoenixnap.com/kb/rsync-exclude-files-and-directories
https://serverfault.com/questions/124883/directory-backed-up-with-rsync-is-much-bigger-than-source
发表评论