天天看点

rsync工具同步方法rsync介绍

rsync是一个网络间的实时同步目录或文件的工具,能够实现数据增量同步,可以起到热备和比全量备份数据节省时间及带宽的优点,通常的备份文件或目录都是以拷贝形式全量备份,如果文件过于庞大,则需要很多时间,假如是通过网络间来拷贝一个全量备份,那则又会消耗较大的网络资源,rsync可以起到增量备份,可以只同步备份新增加的部分文件或目录,可以极大的减少时间和网络资源的使用

rsync的特性如下:

1)支持拷贝特殊文件如链接,设备等

2)可以有排除指定文件或目录同步的功能,相当于打包命令tar

3)可以保持原来文件或目录的权限,时间,软硬链接等所有属性均不改变。

4)可实现增量同步,即只同步发生变化的数据,因此数据传输效率更高

5)可以使用rcp,rsh,ssh等方式来配合传输文件,也可以通过直接的socker链接

6)支持匿名的或认证的进程模式传输,方便进行数据备份及镜像

rsync 同步格式(来源目录:需要拷贝的原文件或目录,目标目录:指拷贝到的目标目录上)

rsync [option选项] 来源目录 目的目录

rsync [option选项] 来源目录 用户@远程主机:目的目录

rsync [option选项] 用户@远程主机来源目录 目标目录

rsync [option选项] 来源目录 user@远程主机::目标目录

rsync [option选项] user@远程主机::来源目录 目标目录

使用yum安装rsync同步工具:yum install -y rsync

rsync常用选项

-a  包含选项 -rtokgod

-r  同步目录时需要添加的选项,类似cp时的-r选项

-v  同步时输出的信息,显示同步的过程

-l   保留软连接,不会同步软连接指向的源文件,这个-l选项同步会导致软连接失效

-l    保留软连接同时同步软连接的源文件

-p   同步时保持文件原权限属性,不改变文件的原权限

-o   同步文件或目录时保持原先的属主,不改变文件的原属主

-g   同步时保持文件或目录的属组,不改变文件的原属组

-d  保持设备文件信息

-t    同步时保持文件时间的属性,不改变文件的原时间属性

--delete   同步过程中对比目标是否有源没有的文件,如果目标拥有源没有的文件,则将目标内比源多的文件内容删除处理,如同步web程序目录时排除掉产生的log日志目录不进行同步

--exclude   过滤掉某些文件不做同步,如--exclude "1.log" 会把文件名包含1.log的文件或目录过滤掉不做同步

-p   显示同步过程,比如传输速率,比-v选项更加详细

-u   该选项表示为:如果目标中存在的文件比源中的文件新时,则不同步该文件,同步时以最新的文件为主,源不会去覆盖目标内的文件内容

-z  传输时压缩,以zip格式压缩,压缩时节省带宽,但是相对的比较消耗cpu

rsync常用选项示例

使用rsync同步一个目录

同步一个软连接和软连接源文件的目录到目标目录

这个错误是因为当前目录中包含失效的软连接文件,这时我们需要查找出失效的软连接文件进行修复或删除处理

使用-l同步一个包含软连接的文件,创建一个软连接文件然后进行同步

命令 : rsync -avl /usr/local/src/tmp/ /tmp/tmp-1/ 同步后软连接会被同步成一个普通的文件

--delete 选项 同步覆盖掉源内不存在的文件,如目标中存在1234.log,源里不存在1234.log,那么同步时会删除掉目标内的1234.log文件

rsync --exclude 排除某些文件或目录不进行同步,需求如不同步日志文件

rsync -p 选项 显示传输时的详细信息,传输速率,传输时间等信息(这次同步了--exclude排除的文件)

rsync -u 选项会比较同步时所有文件的时间属性信息,同样的两个文件,如果目标的时间属性更新,则不会在同步时把源文件覆盖目标文件,针对目标上的这个比拷贝源还新的文件不做操作

rsync主机间的同步方式

rsync推送同步,把文件或目录推送到其他主机上:rsync -avp 需要同步的目录 目标主机ip:/目标目录路径,如:

rsync -avp /usr/local/src/ 192.168.1.223:/usr/local/src/tmp

推送方式的同步结果

rsync工具同步方法rsync介绍

rsync拉取同步的方式,对远程主机的整个目录进行主动拷贝: rsync 远程ip:/拷贝的目录路径 /存放在本机的路径/,如下命令:rsync -avr 192.168.1.223:/usr/local/src/tmp /usr/local/src

主动同步的执行结果,结合上条同步实践可以看到把远程主机的tmp整个目录拷贝过来了,两台机器上的目录下的文件数量和名称也是一致的

rsync工具同步方法rsync介绍

rsync通过非默认的ssh端口同步

通过非22端口同步,指定自定义ssh端口进行同步,rsync -avr -e "ssh -p 指定自定义端口" /本机存放的目录/ 远程主机ip:/远程目录/ ,命令如:rsync -avr -e "ssh -p 22" /tmp/ 192.168.1.223:/tmp/tmp-1

同步后将主动同步时的tmp目录进行了删除,从这一点也可以看到进行了同步

此外rsync可以通过系统服务的方式来定时同步主机之间的文件,关于如何配置rsync服务同步的方式请参阅其他资料

继续阅读