一、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. hdu-1140(求距离,精度判断)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1140 思路:卫星只能消灭地面上一部分的风暴,即风暴与卫星的距离最大是卫星到地球的切线的距离,大于这个距 ...

  2. 38 Cell-phone Emissions can change Brain Activity 手机辐射有可能改变大脑活动

    Cell-phone Emissions can change Brain Activity 手机辐射有可能改变大脑活动 So many people use the cell phone so fr ...

  3. 32. My Experiences in the Factories 我在工厂的经历

    32. My Experiences in the Factories 我在工厂的经历 ① I've worked in the factories surrounding my hometown e ...

  4. spring的IOC/DI功能实践

    一.写在前面: 做这个Demo主要是为了能够更好的理解Spring的原理,看再多的文章,听再多的讲解最终都最好自己去实现一遍,可以将Spring的功能分块实现,最终自然比较容易将各个功能组合起来. 这 ...

  5. NATAPP打穿内网

    前一篇博文写了ngrok作为内网穿透工具现在开始开始学习另外一种内 网穿透natapp(他也是基于ngrok的一种高速内网穿透服务)多的介绍就 不说了,开始进入正题. 第一步:先登录natapp官网( ...

  6. (二)spring-mvc-showcase 和 swagger-springmvc 的恩恩怨怨

    1. 搜索 spring showcase 就可以找到这篇 http://spring.io/blog/2010/07/22/spring-mvc-3-showcase 就是教你如何使用spring ...

  7. EF学习笔记-CODE FIRST-约定

    首先EF对关系数据库的映射遵循如下规则: Fluent API 配置 override 数据注释 override 约定 System.Data.Entity.ModelConfiguration.C ...

  8. C++中的数组问题

    C++中的数组问题 1. 数组赋值与初始化 (1)直接初始化: ]={,,}: (2)遍历访问初始化: ;i< ;i++) //直接读入,或者用别的数组,以及别的(i+1)等. (3)内存操作函 ...

  9. java代码中存在的Big Endian 和 Little Endian

    Big Endian 和 Little Endian 详解 Java中的Big(Little)-endian问题的一种解决方法 主机序和网络序  很重要很重要 几种ip存放形式 Big-Endian和 ...

  10. 设计模式之单件模式(Singleton Pattern)

    一.单件模式是什么? 单件模式也被称为单例模式,它的作用说白了就是为了确保“该类的实例只有一个” 单件模式经常被用来管理资源敏感的对象,比如:数据库连接对象.注册表对象.线程池对象等等,这种对象如果同 ...