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

系统 Linux
常常备份是良好的习惯,只是这么好习惯只有在无数次的顿足捶胸、呼天抢地的懊恼之后,才会勉勉强强慢慢地养成。

[[358252]]

 常常备份是良好的习惯,只是这么好习惯只有在无数次的顿足捶胸、呼天抢地的懊恼之后,才会勉勉强强慢慢地养成,备份最常用的命令是:

  1. rsync -avl source destination 

此处的短选项 a 是长选项--archive 的简写形式。然而,如果我们要系统搬家的时候备份所有的资料,谨慎用 -a 选项。因为如果在新系统上换了新的用户名,会导致你打不开用 -a 选型备份的所有资料。

为什么呢?

1)便捷却不简单的--Archive 选项

选项--archive看似仅仅代表一个指示条件,其实质却是多个高频选项的快捷键:

  1. rsync -a #等价于  -rlptgoD  

换言之,-a这一个option,相当于添加了-rlptgoD这七个options。引言中提出的问题,症结就在这里。

  1. -p  --perms # 保留权限 
  2. -o  --owner # 保留owner 
  3. -g  --group # 同步组 

 上面的三个选项,分别同步文件的额权限,属主和属组;后果是,我们只能用当前的用户查看所有备份的资料。切换用户之后,则没有对应权限查看。

因此,我们重装系统备份所有资料的时候,要慎用-a 选项。

2)常用的基本选项

rsync 的基础选项有:

  1. -v  --verbose # 在终端中报告当前的进度 
  2. -r  --recursive # 递归模式 
  3. -t  --times # 同步时间戳 
  4. -I --ignore-times # 不同步时间戳 
  5. -l --links # 创建软连接 
  6. -L, --copy-links  # 复制软连接所指向的位置 
  7. -z, --compress  # 允许压缩 
  8. -d, --dirs  # 只备份目录树结构 

 以上8个option是rsync命令的基础部分。

3)排除和包含特定的文件与目录

同步的过程中,我们常常需要排除掉dot文件,比如.git.ssh等,exclude命令就有了用武之地

  1. --exclude={.ssh,.git,.config}  

--exclude-from=FILE选项提供了更贴心的服务,我们可以将经常要排除掉的目录写进专门的文件。此文件中,我们可以应用#和;备注,rsync命令会自动忽略,同时也会跳过空白行。

与‘exclude’相对应的是 ‘include’。如果不使用 {},我们可以写成多行的模式:

  1. rsync -av ~/Documents  \ 
  2. --include=~/Public \ 
  3. --include=~/Music \ 
  4. --include=~/Videos \ 
  5. --include=~/Downloads \ 
  6. /media/spiritme/disk/ 

 除了include 和exclude 之外,rsync还准备了根据文件的大小实施筛选的选项:

  1. --max-size=SIZE # 筛选掉大于此SIZE的文件 
  2. --min-size=SIZE # 排除掉小于此SIZE的文件 

 4)rsync 命令的核心

--update 选项是rsync命令的灵魂。根据rsync十分贴心的算法,destination 中时间戳晚于source中的文件不会被覆盖掉。

与 --update 选项协同作战的还有--delete选项,将删除掉destination中多余的目录与文件。

与--delete 呼应的是--existing 选项,只同步在目标位置存在的文件,而不创建新的文件。

以上三个选项乃是rsync命令的核心部分。

我们还可以更好的监控rsync的工作进度以及生成最终的报告。

--progress会打印档期的进度

  1. 782448  63%  110.64kB/s    0:00:04 # 与 -h 搭配使用 

-i, --itemize-changes将生成所有变更的报告。

5)改变 rsync 算法的选项

-W, --whole-file选项会改变rsync的算法。关闭其默认的 delta-transfer algorithm,而将文件整体移动。当然如果是在本地执行rsync,-W 则是默认行为。

-c, --checksum选项将改变rsync默认的‘quick-check’算法。

6)收尾总结

我们从具体问题‘rsync-a' 命令导致的权限问题出发,遵循循序渐进的逻辑分别探讨了:

1)快捷方式 rsync -a2)常用的8个基本选项3)排除和包含特定的文件与目录的方法4)rsync 命令的核心5)改变 rsync 算法的选项


 

责任编辑:姜华 来源: 今日头条
相关推荐

2020-12-21 10:55:41

Linux系统ls命令

2010-06-07 17:04:21

rsync 命令

2013-12-03 09:12:37

Linux命令kill命令

2009-03-09 20:57:28

linuxrsync文件同步备份

2017-03-01 12:19:17

rsync Linux系统

2017-02-27 19:57:02

Linux备份压缩命令

2019-07-29 19:30:54

Linux命令ls命令

2015-10-22 09:26:20

linux命令whereis命令

2010-09-14 09:15:03

RsyncLinux备份远程数据同步

2019-05-17 08:24:11

LinuxLinux备份rsync命令

2015-07-31 10:20:13

Linux命令完全指南

2021-06-18 10:28:56

Linuxrsync命令

2021-06-09 08:05:02

Linux 备份数据

2018-08-03 11:07:52

dd命令备份Linux系统

2023-12-16 22:21:42

Linux网络命令

2017-11-02 13:15:18

Linux

2020-12-14 09:58:04

LinuxManuatldr

2021-03-14 08:12:02

函数JavaScript语言

2021-03-12 08:21:54

JavaScript 前端原生js

2018-04-27 14:58:09

Linuxkill命令
点赞
收藏

51CTO技术栈公众号