Rsync介绍
Rsync介绍
是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。软件适用于unix、linux、windows等多种操作系统平台。全称为Remote Rynchronization。
ssh带的scp,但优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。
Rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,类型cp命令。
Rsync还可以实现删除文件和目录的功能。
一个rsync相当于scp,cp,rm,但是还优于他们每一个命令。
Rsync同步
在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录。也可以根据权限,属主等属性的变化同步,但需要制定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以能实现快速的同步备份数据。
版本区别:
version2版本会把要同步的文件加载和已有的文件比较,如果发生变化就同步过去。version3版本边比较边同步。
Rsync是文件系统之上,基于文件的同步;基于block的同步用drbd。
union双机互相同步,csync2多机同步。
Rsync特性
- 支持拷贝特殊文件如链接文件、设备等。
- 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
- 可以做到保持源文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-P。
- 可以实现增量同步,既只同步发生变化的数据,因此数据传输效率高。
- 可以使用rcp、rsh、ssh等方式来配合传输文件(rsync本身不对数据加密)
- 可以通过socket(进程方式)传输文件和数据。(服务端与客户端)
- 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
Rsync企业应用
- 两台服务器之间的数据同步
- 集群服务器的数据同步
- 定时同步(cron+rsync)与实时同步(rsync+inotify、rsync+sersync)
Rsync工作方式
- 单个主机本地之间的数据传输(此时类似于cp命令的功能)
- 借助rcp、ssh等通道来传输数据(此时类似于scp命令的功能)
- 以守护进程(socket)的方式传输数据(这个是rsync自身的重要功能)
Rsync优缺点
- 优点:增量备份同步、支持socket(daemon)、集中备份
- 缺点:大量小文件同步的时候比对时间较长,有的时候rsync进程会停止。解决方式可以打包同步或者通过drbd方式。同步大文件(10G)这样的大文件有时候也会有问题。(发生同步中断)未完成同步前,是隐藏文件。
常用参数
1 | 语法: rsync [option...] src... [dest] |
常见使用方法
单个主机本地之间的数据传输 本地传输模式(local-only mode)
1 | rsync -az /home/e-books/ /home/books/ |
将远程目录复制/同步到本地计算机
1 | rsync -avzh root@192.168.1.100:/www/rsync/php7 /home/php7/ |
将文件和目录复制/同步到服务器或从服务器同步
1 | rsync -avz /home/rsync/ root@192.168.0.101:/www/rsync/ |