一、Rsync 原理图

二、Rsync 原理描述

  2.1:什么是Rsync

    Rsync是备份的一款软件,它可以实现全量备份、增量备份,也可以在不改变内容、属性的情况下进行同步备份,端口默认是873

  2.2:Rsync的三种工作模式

    Rsync支持本地备份(相当于本地的CP命令)、远程备份(通过SSH)、通过daemon模式(服务端、客户端)可以进行Pull拉取数据和Push推送数据

  2.3:Rsync原理阐述(针对常用的daemon模式)

    ① Rsync客户端执行Rsync命令,去向服务端认证

    ② 首先服务端会认证发送访问的虚拟用户(在服务端配置的auth users参数)

    ③ Rsync客户端告诉服务端虚拟用户,认证成功或者失败

    ④ 认证客户端发送的密码文件(客户端发送时--password-file = /etc/rsyncd.pas)

    ⑤ 认证成功同步数据

三、Rsync 优缺点

  3.1:优点(使用它的理由)

    ①  增量备份,支持socket(daemon)集中备份(支持推拉,都是以客户端为参照物)

    ②  支持远程shell通道模式还可以密码ssh传输

    ③ 支持断点续传

    ④ 可以排除指定的文档或者目录,相当于tar的排除功能

    ⑤ 支持匿名认证远程模式传输,实现方便安全的数据传输

  3.2:缺点(什么时候要用其他的方法)

    ① 大量小文件同步时间长,有时候会出现进程突然的停止

    ② 同步大文件的时候会中断,没有完成同步前是隐藏文件(点开头的文件),但是可以通过它的断点续传来实现传输

四、Rsync 什么环境使用

  ① 利用定时任务(crontab)+rsync实现定时同步数据,主要同步的信息一般是内部人员使用的文件

  ② 利用实时同步软件(inotify)+rsync实现实时的同步数据,主要同步的信息是用户或者客户上传到服务器的文件

五、Rsync 搭建部署

  5.1:语法及常用参数

常用参数:
-avz:保持属性,输出详细信息
-e: 隧道模式传输(SSH)
--delete:删除(无差异同步,两个文件保持一致)
--exclude=*.log: 要排除的文件
--bwlimit=10: 限速同步
--progress:在传输时显示传输的过程
--partial:断点续传 基于rsync daemon客户端同步语法:
拉取: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推送: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

  5.2:在服务端安装rsync软件

安装:
yum -y install rsync (Centos7 已经默认安装了)
检查:
rpm -qa rsync
结果出现表示已安装
rsync-3.0.9-18.el7.x86_64

  5.3:在服务端修改rsync的主配置文件(/etc/rsyncd.conf)

在etc下面有rsyncd.conf这个文件,这个文件中有一些注释信息,就是配置文件中的规则
我们要进行自定义配置文件:
cat >/etc/rsyncd.conf<<EOF
uid = root # 用户,远端的命令使用rsync访问共享目录
gid = root # 用户组
port = 873 # 服务端口
address = 192.168.163.129 # 服务地址 一般使用内网地址 pid file = /var/run/rsyncd.pid # 进程号文件
lock file = /var/run/rsyncd.lock# 锁文件
log file = /var/log/rsync.log # 日志文件 auth users = rsyncadmin # 虚拟用户
secrets file = /etc/rsyncd.pas # 密码文件
motd file = /etc/rsyncd.motd # 描述文件(这个配置可以写到每个模块中,每个不同的同步就会显示不同的描述信息了) transfer logging = yes # 使 rsync 服务器将传输操作记录到传输日志文件。默认值为false
log format = "%o [ %a ] %m (%u) %f %b %l %b" # 日志格式
syslog facility = daemon # 指定 rsync 发送日志消息给 syslog 时的消息级别
use chroot = no # 默认为 true,在传输文件之前首先 chroot 到 path 参数所指定的目录下;优点,安全;缺点,需要 root 权限,不能备份指向 path 外部的符号连接所指向的目录文件
timeout = 900 # 超时时间
ignore nonreadable = yes # 是否忽略错误
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # 用来指定那些在传输之前不进行压缩处理的文件
max connections = 20 # 最大连接数 read only = false # 手动推送 可写
write only = true # 可读
list = false hosts allow = 192.168.163.0/24 # 允许访问地址
hosts deny = * # 拒绝访问地址(这个最好是不用;allow 和 deny同时存在的时候会出现不生效的情况) # 模块配置
[date_backup] # 模块名
path = /opt/data_backup # 备份目录绝对路径
EOF

  5.4:在服务端创建身份认证文件

生成身份认证文件(rsyncadmin虚拟用户123456密码)
ehco "rsyncadmin:123456" >> /etc/rsyncd.pas
特别重要的一点
一定给这个文件600权限不然你会很惨的
chmod 600 /etc/rsyncd.pas

  5.5:在服务端创建备份的目录(配置文件中模块path的目录)

创建备份目录(同配置文件中模块的path路径)
mkdir -p /opt/backup

  5.6:在服务端创建描述信息文件

创建欢迎描述信息主要是在执行客户端推送的时候有个显示
echo "welcome rsync server" >> /etc/rsyncd.motd

  5.7:在服务端启动rsync服务

启动两种方式
rsync --daemon
systemctl start rsyncd
检查
ps -ef | grep rsync | grep -v grep
netstat -lntup | grep rsync

  5.8:在客户端创建备份目录

创建备份目录的主要原因是为了对客户端要备份的文件进行统一打包推送
mkdir -p /opt/backup

  5.9:在客户端创建身份认证密码文件(只包含密码)

和服务端的密码保持一致,因为传输数据需要进行密码的认证
echo "123456" >> /etc/rsyncd.pas
同样一定要给600权限
chmod 600 /etc/rsyncd.pas

  5.10:在客户端测试往服务端推送拉取文件

使用推送的方式,把数据推到服务端
# 第一种方式(需要修改read only = false)
rsync -avz --progress --delete /opt/backup/ rsyncadmin@192.168.163.129::date_backup/ --password-file=/etc/rsyncd.pas # 第二种方式(需要修改write only = false)
rsync -avz --progress --delete /opt/backup/ rsync://rsyncadmin@192.168.163.129/date_backup/ --password-file=/etc/rsyncd.pas # 过滤所有得log文件
rsync -avz --progress --exclude=*.log --delete /opt/backup/ rsyncadmin@192.168.163.129::date_backup/ --password-file=/etc/rsyncd.pas
rsync -avz --progress --exclude={a,b} --delete /opt/backup/ rsyncadmin@192.168.163.129::date_backup/ --password-file=/etc/rsyncd.pas # 排除多个文件
使用拉取的方式
# 方法一
rsync -avz /opt/backup/ --progress --delete rsyncadmin@192.168.163.129::date_backup --password-file=/etc/rsyncd.pas # 方法二
rsync -avz --progress /opt/backup/ rsync://rsyncadmin@192.168.163.129/date_backup/ --password-file=/etc/rsyncd.pas PS:接下来就可以设置计划任务crontab来定时的执行备份任务了(--delete 参数最好不要加 会出现血的惨案)
其他参数:
限速:
rsync -avz --progress --exclude=*.log --bwlimit=10 --delete /opt/backup/ rsyncadmin@192.168.163.129::date_backup/ --password-file=/etc/rsyncd.pas

  5.11:其他的两种方式的使用

本地方式:
rsync -avz /etc/hosts /mut/ 远程ssh方式:
rsync -avz /etc/hosts -e 'ssh -p 22' root@192.168.163.132:/mnt/
如果慢可以在ssh配置中设置两个参数(ssh_config文件)
GSSAPIAuthentication yes 改为 no
UseDNS yes 改为 no

六、Rsync 扩展(实时同步)

  6.1:inotify+rsync

  6.2:sersync

  6.3:lsyncd

七、Rsync 总结

  Rsync这个工具其实还是挺好用的在工作中用的也很多,它的优点完全大于缺点,所有事实上在工作中它的有点会得到充分的利用的,缺点也是可以使用其他的方式解决的,这个工具挺重要的 在linux属于5星软件的,还有就是想要快速的定位错误真的需要你对整个流程、原理要了解的,掌握它相当于掌握了linux的一款初级神器呦

八、Rsync 错误总结

1、密码输入错误,虚拟用户名错误

2、secrets file = /etc/rsyncd.pad指定的密码文档和实际密码文档名称不一致

3、/etc/rsyncd.pad文档权限不是600

4、rsyncadmin:123456密码配置文档后面注意不要有空格

5、rsync客户端密码文档中只输入密码信息即可,不要输入虚拟认证用户名称

6、推送时双冒号后面为模块名date_backup,而不是路径/date_backup

7、telnet连接rsync服务ip地址873端口,查看服务是否启动 telnet 192.168.163.129 873

Rsync备份服务的更多相关文章

  1. 3、Rsync备份服务实战

    1.Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用. rsync官方地址:传送门http:// ...

  2. Rsync备份服务实战

    目录 Rsync备份服务实战 一.Rsync 二.rsync的应用场景 1.Rync的数据同步模式 2.rsync的三种模式 三.rsync配置服务端客户端 四.rsync实战 实战一 报错解决方法: ...

  3. day27 综合架构 rsync备份服务

    sync软件使用方法: rsync命令 1v4 a 本地备份数据 cp [root@nfs01 backup]# cp /etc/hosts /tmp [root@nfs01 backup]# ll ...

  4. 二.Rsync备份服务

    自己动手部署一遍 期中架构-第二章-备份服务笔记====================================================================== 01. 课 ...

  5. Rsync备份服务部署

    1 Rsync服务器架构规划 在搭建服务之前需要做以下规划设计,其中包括:主机规划表.主机IP地址规划表.主机架构图.主机hosts解析以及linux主机基础优化等 1.1 主机规划表 服务器说明 数 ...

  6. Linux Rsync备份服务介绍及部署守护进程模式

    rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份工具 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输 ...

  7. Linux中rsync备份服务部署

    rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份工具 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输 ...

  8. 综合架构之Rsync备份服务,服务端和客户端配置

    服务端配置(即备份服务器) ps:客户端配置见下方 配置一个新服务的步骤: 第一步:先将该服务下载 yum install -y rsync 第二步:编写服务配置文件 配置文件:/etc/rsyncd ...

  9. rsync 备份服务搭建(完成)

    rsync服务守护进程 服务器端配置过程: 1. 检查rsync是否安装: rpm -qa rsync 2.添加rsync服务的用户,管理本地目录 useradd-s /sbin/nologin -M ...

随机推荐

  1. Json和XML解析

    NSXMLParse 关于XML,有两种解析方式,分别是SAX(Simple API for XML,基于事件驱动的解析方式,逐行解析数据,采用协议回调机制)和DOM(Document Object ...

  2. dos常用命令使用说明

    cd 改变当前目录 sys 制作DOS系统盘 copy 拷贝文件 del 删除文件 deltree 删除目录树 dir 列文件名 diskcopy 制磁盘 edit 文本编辑 format 格式化磁盘 ...

  3. 字符串"k:1“” 处理成字典 {'k':1,'k1':2....}

    1.有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....} #第一种方法 s1 = "k:1|k1:2|k2:3|k3:4&q ...

  4. OpenGL中位图的操作(glReadPixels,glDrawPixels等)

    OpenGL中位图的操作 OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例). 1. BMP文件格式简单介绍 BMP文件是一种像素文件,它 ...

  5. 利用ASIHTTPRequest访问网络

    ASIHTTPRequest是第三方类库,ASIHTTPRequest对CFNetwork API进行了封装. 有如下特点: l 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作 l ...

  6. html.EditorForModel自定义模版

    https://www.cnblogs.com/lori/p/5969658.html  http://www.cnblogs.com/yinzixin/archive/2012/12/18/2821 ...

  7. 使用Markdown语法画流程图

    Markdown流程图   鉴于本人使用的是马克飞象,所以一下以马克飞象为例: 语法   流程图的画法和代码块类似,流程图也是写在两个```之间的.格式用flow表示,例如: st=>start ...

  8. java使用properties文件

    使用对用的util包下的properties包就可以了,这样我们有配置的话,写到一个properties文件中更直观. 这里写一个比较丑的例子: package com.property; impor ...

  9. 敏捷项目管理架构(APMF)

    研读许秀影博士的<敏捷项目管理:基础知识与应用实务>一书,其中提到传统项目管理与敏捷项目管理的混合管理模式—敏捷项目管理架构(Agile Project Management Framew ...

  10. 各种方法配置 Visual Studio 第三方库

    配置第三方库如Opencv,或者软件开发商提供的SDK时,一般需要配置三个文件: 头文件(.h),引入库(.lib)文件(也称“导入库文件”),动态链接库(.dll)文件 下面以度申科技的相机sdk配 ...