当前位置: 首页 > 科技观察

帮你精通Linux:完全解析Rsync命令的17个备份选项

时间:2023-03-15 13:04:08 科技观察

助你掌握Linux:全面解析rsync命令的17个备份选项最常用的备份命令是:rsync-avlsourcedestination这里的短选项a是长选项--archive的简写形式。但是,如果我们想在系统迁移时备份所有数据,请谨慎使用-a选项。因为如果在新系统上更改了新的用户名,将无法打开所有用-a选项备份的数据。为什么?1)方便但不简单的--Archive选项选项--archive看似只代表一个指示条件,但实际上是多个高频选项的快捷键:rsync-a#相当于-rlptgoD,也就是说,-选项a相当于加上七个选项-rlptgoD。引言中提出的问题症结就在这里。-p--perms#保留权限-o--owner#保留所有者-g--group#同步组上面的三个选项,分别同步文件、属主和组的权限;结果是我们只能使用当前用户可以查看所有备份的数据。切换用户后,没有对应的查看权限。因此,我们在重装系统和备份所有数据时,要慎用-a选项。2)常用的基本选项rsync的基本选项有:-v--verbose#在终端中报告当前进度-r--recursive#递归模式-t--times#synchronizetimestamp-I--ignore-times#不同步时间戳-l--links#创建软链接-L,--copy-links#复制软链接指向的位置-z,--compress#允许压缩-d,--dirs#只备份目录树结构以上8个选项是rsync命令的基本部分。3)在排除和包含特定文件和目录同步的过程中,我们经常需要排除点文件,例如.config}--exclude-from=FILE选项提供了更贴心的服务,我们可以将经常被排除的目录写入特殊文件。在这个文件中,我们可以应用#和;注释,rsync命令会自动忽略,也会跳过空行。“排除”的对应词是“包含”。如果不使用{},我们可以写一个多行模式:rsync-av~/Documents\--include=~/Public\--include=~/Music\--include=~/Videos\--include=~/Downloads\/media/spiritme/disk/除了include和exclude,rsync还准备了根据文件大小过滤的选项:--max-size=SIZE#过滤掉大于这个SIZE的文件--min-size=SIZE#排除小于这个SIZE的文件4)rsync命令的核心--update选项是rsync命令的灵魂。根据rsync非常贴心的算法,目标时间戳晚于源时间戳的文件不会被覆盖。与--update选项一起使用的还有--delete选项,它会删除目标中多余的目录和文件。与--delete对应的是--existing选项,只同步目标位置存在的文件,不创建新文件。以上三个选项是rsync命令的核心部分。我们还可以更好地监控rsync的进度并生成最终报告。--progress将打印进度表的进度78244863%110.64kB/s0:00:04#使用-i和-h,--itemize-changes将生成所有更改的报告。5)改变rsync算法选项-W,--whole-file选项会改变rsync算法。关闭其默认的增量传输算法,而是批量移动文件。当然,如果rsync在本地执行,-W是默认行为。-c,--checksum选项将改变rsync的默认“快速检查”算法。6)结束总结我们从'rsync-a'命令导致的权限问题的具体问题出发,循序渐进的逻辑讨论:1)快捷方式rsync-a2)常用的8个基本选项3)排除和包含特定文件同目录的方法4)rsync命令的核心5)改变rsync算法的选项