文章目录
- 目的
- 快速入门
- 常用选项
- 总结
目的
rsync是一款开源的文件增量备份程序,通常用于linux下文件的增量备份。这个程序可以将一个目录的文件备份到另一个目录中,并且在每次备份时还可以对文件进行比较,只复制更新有过改动的文件。
rsync官网:https://rsync.samba.org/ github项目:https://github.com/WayneD/rsync
快速入门
rsync最核心的用法是:
rsync -a src dest
初次运行上面命令时会将src文件夹和其子文件(夹)复制到dest下,如果dest不存在rsync会自动创建;当再次运行该命令时rsync会先判断src相比dest/src中内容的变动情况,然后只复制/替换更加新的内容;如果再次运行该命令时src和dest/src没有变化的话就不会执行任何操作。上面命令选项中 -a
为备份的具体参数,通常我们还可以加上 -v
参数来显示具体的过程信息:
默认情况下 rsync -a 只会关注src中新增的或是修改的,而不关注已删除的,可以通过 --delete
参数删除dest/src中有而src中没有的文件,我们可以用 -n
参数来模拟执行:
对于本地目录间的拷贝还有一些情况可以稍微关注下:
rsync -a src/ dest
这个命令只会将src目录下面的内容备份到dest中,不包括src本身;
rsync -a src1 src2 dest
这个命令可以同时将src1和src2都备份到dest中;
除了本地目录间的备份,rsync的源或目标目录还可以使用通过SSH方式访问的目录,比如下面这样:rsync -a src username@remote_host:dest
rsync -a username@remote_host:src dest
常用选项
选项 | 描述 |
| 归档模式,相当于-rlptgoD |
| 显示具体的过程信息 |
| 文件在压缩后进行传输 |
| 删除目标目录有而源目录中没有的文件 |
| 排除某些文件或目录 –exclude="*.txt" 排除所有的.txt文件 |
| 从文件中读取排除规则,一行一条规则,以";“或”#"开头的行为注释行 |
| 指定必须包含的文件或目录,通常和-exclude结合使用 |
| 指定一个目录作为基准目录,源目录与基准目录比较,只有更新的内容才备份到目标目录中, 其它的内容只是在目标目录中生成一个链接到基准目录的硬链接。 该选项主要用于保留不同时间点的备份 |
| 模拟执行,和-v一起使用,只输出执行信息但并不真的执行操作 |
| 跳过在目标目录中修改时间比源目录中要新的文件 |
| 显示传输进度信息 |
| 将输出信息记录到文件中 –log-file=log |
总结
rsync的一些基础功能使用是比较简单的。