Rsync备份工具讲解(一)

文章目录

    • 什么是rsync软件
    • 增量与全量
      • 什么是全量传输
      • 什么是增量传输
      • rsync对比其他命令
        • 对比测试:
    • rsync的特性
    • rsync复制原理
    • rsync的企业工作场景说明

本文分多章发布更新,将介绍inotify+rsync和sersync工具的使用方法,详细介绍rsync的相关原理,rsync的同步过程,希望给位朋友们能藉此深入rsync工具.让它成为你有利助手!

什么是rsync软件

(1)Rsync(英文名称:remote synchronize)是一个增量备份工具,配合linux中的任务计划能实现定时或间隔时间同步,配合inotify或者sersync(这里提到的两个工具会讲解如何使用),可以实现触发式的数据实时同步!
可以通过LAN/WAN快速同步到数台主机间,rsync使用所谓的**"Rsync算法-quick check"使本地远程两个主机之间文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快!**
(2)rsync还可以实现增量全量同步数据方式(下面会讲到什么是增量及全量)

说明

这里提到的rsync的算法"quick check",它的原理以及对算法实现的机制要比想象中复杂一些,平时我们使用rsync实现简单的备份,同步的功能足以,对于运维工作来说没有太大的必要去研究它的算法实现过程,

如果想实现rsync更强大就更完整的功能,就要有理论知识的支撑,所以想要使用起来就要详细的了解及多做实验练习使用rsync工具,

man rsync   #rsync手册
rsync -vvvv   #显示执行过程,参数"v"越多就越详细
rsync --version  #查看版本号

(2)Rsync支持大多数的类Unix系统,无论是Linux,Solaris还是BSD上都经过了良好的测试
此外,它在windows平台下也有相应的版本,如cwRsyncSync2NAS等工具.

总结

Rsync是一款开源的,快速的,多功能,可实现全量及增量的本地或远程数据同步备份的优秀工具

增量与全量

什么是全量传输

例子

假如:设定一个文件夹,这个文件夹主机A/B都各创建一个,要求主机A的文件夹里面的数据每天传送给主机B一次

第一天,主机A的文件夹里面有10G数据,通过全量的形式传给了主机B

Rsync备份工具讲解(一)_第1张图片

说明

A主机一次把文件夹里面的10G数据全部传输给了主机B

第二天主机A的文件夹里又增加了5G数据;量,今天还需要继续把这些数据传输给主机B一次
Rsync备份工具讲解(一)_第2张图片

说明

当主机A增加数据量的时候再向主机B发送,还是会把整个15G的文件全部发送过去,主机B又重新把原来有过的和新增的接受一遍,这样导致传输效率极低,造成很多资源上的浪费.

什么是增量传输

(1)接着上面提到的例子咱们继续演示增量是如何传输数据的
(2)第一天,主机A的文件夹里面有10G数据,主机B里面没有任何数据,这时候主机A通过全量的形式把数据传给了主机B.
Rsync备份工具讲解(一)_第3张图片

第二天主机A的文件夹里又增加了5G数据;量,今天还需要继续把这些数据传输给主机B一次,这个时候主机B已经有之前的10G数据了,通过增量备份会如何传输呢??
Rsync备份工具讲解(一)_第4张图片

提示信息

(1)传统的cp,scp工具拷贝每次均是完整的拷贝,而rsync出了可以完整的拷贝外,还具备增量拷贝的功能!
(2)因此,从同步数据的性能及效率上来说,Rsync同步工具更胜一筹!
(3)在CentOS5系统中,rsync2.x版本的数据对比方法,把所有的文件对比一遍,然后进行同步.
 在CentOS6系统中,rsync3.x版本的数据对比方法,一遍对比差异,一遍对差异的部分进行同步.

rsync对比其他命令

全量复制的工具有:cp mv scp
增量复制的工具有:rsync(它可以1 V 4 代替cp/scp/ls/rm中的某些功能)

对比测试:

(1)对比cp命令

#拷贝文件
root@db01[20:57:36]:~#ls -l /tmp/hosts
ls: cannot access /tmp/hosts: No such file or directory
root@db01[20:58:58]:~#rsync /etc/hosts /tmp/
root@db01[20:59:10]:~#ls -l /tmp/hosts
-rw-r--r-- 1 root root 475 Dec 23 20:59 /tmp/hosts

#拷贝目录
root@db01[21:06:21]:~#rsync -r /etc /tmp/
root@db01[21:06:10]:~#ls -ld /tmp/etc
drwxr-xr-x 79 root root 4096 Dec 23 21:06 /tmp/etc

(2)对比scp命令

#scp远程复制文件
root@db01[21:08:54]:~#scp -P 22 -rp /etc/hosts 10.0.0.10:/tmp
[email protected]'s password:
hosts                                                               100%  475     0.5KB/s   00:00

#rsync远程复制文件
root@db01[21:11:03]:~#rsync -rp /etc/hosts  [email protected]:/tmp/
[email protected]'s password:

(3)对比ls命令

#ls查看文件属性
root@db01[21:13:08]:~#ls -l /etc/hosts
-rw-r--r-- 1 root root 475 Dec 23 20:56 /etc/hosts

#rsync查看文件属性
root@db01[21:11:24]:~#rsync /etc/hosts
-rw-r--r--         475 2018/12/23 20:56:52 hosts

(4)对比rm命令

#创建测试文件
root@db01[21:15:50]:~#touch /test/ceshi.txt

#使用rm删除
root@db01[21:18:59]:~#rm  -f /test/ceshi.txt

#rsync进行删除
root@db01[21:16:27]:~#rsync --delete -r /null/ /test/
root@db01[21:16:53]:~#ls -l /test/ceshi.txt
ls: cannot access /test/ceshi.txt: No such file or directory
#这里的--delete参数在不了解的情况下不要随便使用,会造成很严重的后果!!!

说明

(1)rsync不支持远程到远程的文件拷贝,scp支持
(2)虽然rsync可以实现cp本地拷贝/rm删除/ls查看文件列表等一些功能,但是~!需要注意的是,rsync的初始目的仅仅只是同步的辅助手段,而且rsync实现这些功能的方式和上面提到的这些命令的实现方式是不一样的!

rsync的特性

1)支持拷贝普通文件与特殊文件,如:链接文件,设备文件等…
2)可以排除指定文件或目录同步的功能,相当于打包命令tar的排除功能

tar zcvf test.tar.gz /opt/data -exclude=test.txt

3)可以做到保持文件或目录的权限/时间(访问时间,修改时间,创建时间),软硬连接,属主,属组,等多有属性
4)可以实现增量同步,即只同步发生变化的数据,因此数据传输效率很高
5) a.可以使用rpc,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
 b.可以通过socket(进程方式)传输文件和数据(server端/client端)—重点学习
 c.支持匿名或认证(无需系统用户)的进程模式输出,可以实现方便安全的进行数据备份及镜像.

rsync复制原理

Rsync备份工具讲解(一)_第5张图片

rsync的企业工作场景说明

1)利用定时任务+rsync方式实现数据同步;
对于网站内部技术人员创建的数据文件,可以采取定时任务方式同步

2)利用实时任务+rsync方式实现数据同步;
对于网站外部访问用户传输的数据,可以采取实时同步方式!

你可能感兴趣的:(Linux运维)