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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 语法: rsync [option...] src... [dest] 说明: [option]为同步时的参数选项 -avz -z --compress 传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。 -v --verbose 详细模式输出,传输时的进度等信息。 -a --archive归档模式,表示以递归方式传输文件,并保持所有文件属性。等于-rtopgDl -r --对子目录以递归模式,及目录下的所有目录都同样传输。 -t --保持文件时间信息。 -o --保持文件属主信息。 -p --保持文件权限。 -g --保持文件属组信息。 -P --显示同步的过程及传输时的进度信息。 -D --保持设备文件信息。 -l --保留软连接。 -e 使用的信道协议,指定替代rsh的shell。 --exclude=PATTERN 指定排除不需要传输的文件模式。
[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 2 3 4
| rsync -avz /home/rsync/ root@192.168.0.101:/www/rsync/
//带进度条 rsync -avz ssh --progress /home/rsync/ root@192.168.0.101:/www/rsync/
|