文章目录

  • 目的
  • 快速入门
  • 常用选项
  • 总结


目的

rsync是一款开源的文件增量备份程序,通常用于linux下文件的增量备份。这个程序可以将一个目录的文件备份到另一个目录中,并且在每次备份时还可以对文件进行比较,只复制更新有过改动的文件。

rsync官网:https://rsync.samba.org/ github项目:https://github.com/WayneD/rsync

rsync增量传输指令 rsync增量备份恢复_备份

快速入门

rsync最核心的用法是:

rsync -a src dest

初次运行上面命令时会将src文件夹和其子文件(夹)复制到dest下,如果dest不存在rsync会自动创建;当再次运行该命令时rsync会先判断src相比dest/src中内容的变动情况,然后只复制/替换更加新的内容;如果再次运行该命令时src和dest/src没有变化的话就不会执行任何操作。上面命令选项中 -a 为备份的具体参数,通常我们还可以加上 -v 参数来显示具体的过程信息:

rsync增量传输指令 rsync增量备份恢复_备份_02


默认情况下 rsync -a 只会关注src中新增的或是修改的,而不关注已删除的,可以通过 --delete 参数删除dest/src中有而src中没有的文件,我们可以用 -n 参数来模拟执行:

rsync增量传输指令 rsync增量备份恢复_运维_03


对于本地目录间的拷贝还有一些情况可以稍微关注下:

rsync -a src/ dest 这个命令只会将src目录下面的内容备份到dest中,不包括src本身;

rsync -a src1 src2 dest 这个命令可以同时将src1和src2都备份到dest中;

除了本地目录间的备份,rsync的源或目标目录还可以使用通过SSH方式访问的目录,比如下面这样:
rsync -a src username@remote_host:destrsync -a username@remote_host:src dest

常用选项

选项

描述

-a

归档模式,相当于-rlptgoD

-v

显示具体的过程信息

-z

文件在压缩后进行传输

--delete

删除目标目录有而源目录中没有的文件

--exclude

排除某些文件或目录

–exclude="*.txt" 排除所有的.txt文件

--exclude-from

从文件中读取排除规则,一行一条规则,以";“或”#"开头的行为注释行

--include

指定必须包含的文件或目录,通常和-exclude结合使用

--link-dest

指定一个目录作为基准目录,源目录与基准目录比较,只有更新的内容才备份到目标目录中,

其它的内容只是在目标目录中生成一个链接到基准目录的硬链接。

该选项主要用于保留不同时间点的备份

-n

模拟执行,和-v一起使用,只输出执行信息但并不真的执行操作

-u

跳过在目标目录中修改时间比源目录中要新的文件

--progress

显示传输进度信息

--log-file

将输出信息记录到文件中

–log-file=log

总结

rsync的一些基础功能使用是比较简单的。