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://askubuntu.com/questions/476041/how-do-i-make-rsync-delete-files-that-have-been-deleted-from-the-source-folder

https://serverfault.com/questions/124883/directory-backed-up-with-rsync-is-much-bigger-than-source


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。