【Linux】循序渐进学运维-服务篇-rysnc原理

大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第7篇文章

前言

上篇文章我们探讨了cp和scp的区别,cp只能本地复制,SCP可以实现多台服务器之间进行数据拷贝和传输,但是只能全部拷贝,我们如果想实现增量拷贝,貌似有些困难。 如果想实现增量拷贝有方案吗?

当然有,rysnc就是其中的一个解决方案,今天我们就来探讨一下关于rsync的那些事。

一. rsync概述

rsync是Linux系统下的数据镜像备份工具,使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

rsync英文称为remote synchronizetion,从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。

rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。

官方网站:https://rsync.samba.org/

二. rysnc 优缺点

1. 优点:

1)可以增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物);socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务。

2)可以限速进行数据的备份或恢复操作。

3)远程SHELL通道模式还可以加密(SSH)传输

4)支持匿名认证(无需系统用户)的进程模式传输,可以实现方便安全的进行数据备份和镜像

5)保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变 –p

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

7) 支持压缩传输,在传输过程中实行压缩及解压操作,占用带宽更少

2. 缺点:

1)大量小文件时进行同步备份,比对的时间较长,有时候会导致rsync进程停止运行或者进程挂起;
解决方法:
a、打包后再同步;
b、drbd(文件系统同步复制block)。

2)同步大文件,比如:10G这样的,有时也会出现问题,导致rsync进程中断,未完整同步前,是隐藏文件,但是会占用磁盘空间(ls -al查看)。直到同步完成后,将隐藏文件改成正常文件。而且,每中断一次,生成一个隐藏文件。

3. 常见备份分类

  • 完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地。
  • 差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)。
  • 增量备份:备份上次备份以后有变化的数据(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)。

三. rysnc 的应用场景

场景一: 推

示意图如下:
在这里插入图片描述

场景二: 拉

示意图如下:
在这里插入图片描述

场景三: 大量数据备份场景

示意图如下:
在这里插入图片描述

场景四: 异地备份

示意图如下:
在这里插入图片描述

四. rysnc 的三种工作模式

  • 本地方式
    本地复制模式,类似于cp
  • 远程方式
    隧道传输模式,类似于scp,推和拉的方式
  • 守护进程
    以守护进程socket 的方式传输数据,(rsync 本身的功能),最常用

五. rsync命令选项

参数 作用
a 权限保存模式,存档递归,保持属性
r 复制所有下面的资料,递归处理
-p 保留档案权限,文件原有属性。
-t 保留时间点,文件原有时间。
-g 保留原有属组。
-o 保留档案所有者(root only)。
-D –devices 保留device资讯(root only)。
-l 复制所有的连接,拷贝连接文件。
-z 压缩模式,当资料在传送到目的端进行档案压缩。
-H 保留硬链接文件。
-A 保留ACL属性文件,需要配合–perms。
-P -P参数和 --partial --progress 相同,只是为了把参数简单化,表示传进度。
–version 输出rsync版本。
-v 复杂的输出信息。
u 仅仅进行更新,也就是跳过已经存在的目标位置,并且文件时间要晚于要备份的文件,不覆盖新的文件。
–port 定义rsyncd(daemon)要运行的port(预设为tcp 873)。
–delete 删除那些目标位置有的文件而备份源没有的文件。
–password-file=FILE 从 指定密码文件中获取密码。
bwlimit=KBPS 限制 I/O 带宽。
filter “-filename” 需要过滤的文件。
exclude=filname 需要过滤的文件。
–progress 显示备份过程。

总结

本文主要讨论了rsync的原理及使用场景, 下篇文章我们将探讨安装及使用,学习任何服务,都需要按照以下的顺序进行学习:

  1. 这个服务是做什么的
  2. 服务的使用场景是什么
  3. 服务如何安装及使用
  4. 有没有类似的服务,拥有相似的功能
  5. 是否能够讲给别人听,并让其他人可以听懂。

我是高胜寒,一个在教培行业不忘初心的人,欢迎留言与我一起交流学习

猜你喜欢

转载自blog.csdn.net/xinshuzhan/article/details/107348464