1.rsync 简介
- rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
- rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp/cp/rm等功能仅仅只是同步的辅助手段,且rsync实现这些功能的方式和这些命令是不一样的。
rsync特点:
- 可以镜像保存整个目录树和文件系统
- 可以保留原有的权限,时间,软硬链接,文件acl,文件属性信息等
- 传输效率高,使用同步算法,只比较变化的
- 支持匿名传输,方便网站镜像;也可以做验证,加强安全
2.rsync 三种工作模式
Local:
rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull : rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push : rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull : rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push : rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
由语法可知,rsync的三种工作方式:
- Local:本地文件系统实现同步,类似于cp的功能
- Access via remote shell:本地主机使用远程shell和远程主机通信,类似于scp的功能
- Access via rsync daemon:本地主机通过网络套接字连接远程主机上的rsync daemon
3.rsync 参数解析和示例
~]# rpm -qa | grep rsync #查看是否安装rsync
rsync-3.1.2-6.el7_6.1.x86_64
~]# yum install -y rsync #没安装直接安装
注:有时候我们发现非常有用的命令,但不知道属于哪个软件包,可使用如下命令查询
~]# yum provides rsync
...
rsync-3.1.2-4.el7.x86_64 : A program for synchronizing files over a network
Repo : base
rsync-3.1.2-6.el7_6.1.x86_64 : A program for synchronizing files over a network
Repo : updates
rsync-3.1.2-6.el7_6.1.x86_64 : A program for synchronizing files over a network
Repo : @updates
部分参数解析:
参数 | 解析 |
---|---|
-v | 显示rsync过程中详细信息,可以使用"-vvvv"获取更详细信息 |
-P | 显示文件传输的进度信息(实际上"-P"="–partial --progress",其中的"–progress"才是显示进度信息的) |
-D | 是"–device --specials"选项的组合,即拷贝设备文件和特殊文件 |
-z | 传输时进行压缩提高效率 |
-e | 指定所要使用的远程shell程序,默认为ssh |
-n, --dry-run | 仅测试传输,而不实际传输,常和"-vvvv"配合使用来查看rsync是如何工作的 |
-a, --archive | 归档模式,表示递归传输并保持文件 |