目录
1. rsync概述
rsync命令英文全称为RemoteRynchronization,是一款开源的、快速的、多功能的、可实现全量或增量的本地或远程数据同步或备份的优秀工具。rsync适用于unix/linux/windows等多种操作系统平台。
参考:rsync(1) man page
2. rsync特性
- rsync具有可使本地和远程两台主机之间的数据快速复制、同步镜像、远程备份的功能,他的这个功能类似于ssh带的scp命令,但又优于scp命令的功能,我们知道scp每次都是全量拷贝,而 rsync可以增量拷贝;
- rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这个功能又类似cp命令,但同样也优于cp命令,cp每次都是全量拷贝,而rsync还可以增量拷贝。
- 另外,利用rsync还可以实现删除文件和目录的功能,这又相当于rm命令!
- 在同步备份数据时,默认情况下,rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。
总结:一个rsync命令相当于scp、cp、rm命令,但是rsync命令比scp、cp、rm命令更胜一筹。
- 支持拷贝特殊文件如链接文件,设备等;
- 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能;
- 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p;
- 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高,tar;
- 可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密);
- 可以通过socket(进程方式)传输文件和数据(服务端和客户端);
- 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据 备份及镜像;
3. rsync的工作方式
一般来说,rsync大致使用三种工作方式来传输数据。分别为:
- 单个主机本地之间的数据传输(此时类似于cp命令的功能);
- 借助rcp,ssh等通道来传输数据(此时类似于 scp命令的功能);
- 以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能)
4. rsync应用场景
- 两台服务器之间数据同步;
- 全网集群架构服务器数据备份,把所有客户服务武器数据定时同步到备份服务器;
- rsync结合inotify的功能做实时数据同步;