一、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. IntelliJ IDEA 2017版 spring-boot加载jsp配置详解(详细图文实例)

    一.创建项目 (File--->New-->Project) 2.项目配置内容 3.选择配置项目的Group包名,Artifact项目名称 4.选择项目类型为web类型 5.创建成功,点击 ...

  2. UVa 11491 Erasing and Winning (贪心,单调队列或暴力)

    题意:给一个数字(开头非0),拿掉其中的d个数字,使剩下的数字最大(前后顺序不能变). 析:拿掉d个数字,还剩下n-d个数字.相当于从n个数字中按先后顺序选出n-d个数字使组成的数字最大,当然采用窗口 ...

  3. 20155226 2016-2017-2 《Java程序设计》第7周学习总结

    20155226 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 认识时间与日期 六个时间基准: 1.格林威治标准时间 2.世界时 3.国际原子时 4.世界协 ...

  4. @WebService @WebMethod 详解

    形象图解 首先AB均需要@WebService如果 @WebService(endpointInterface="package.B") public class A implem ...

  5. Lucene 中自定义排序的实现

    使用Lucene来搜索内容,搜索结果的显示顺序当然是比较重要的.Lucene中Build-in的几个排序定义在大多数情况下是不适合我们使用的.要适合自己的应用程序的场景,就只能自定义排序功能,本节我们 ...

  6. 逆着得最长路POJ1797

    POJ1797点击打开链接 这个题很是不错我感觉 很容易把这个题和上一个青蛙跳的题联系起来做,我也确实联系起来了,可还是没能完整得Ac,是因为我的算法思路还是最短路,这里错了 这个题目得要求是,从1到 ...

  7. 【转】PHP操作MongoDB【NoSQL】

    原文:http://blog.sina.com.cn/s/blog_4b67d3240101519b.html 一.MongoDB简介 MongoDB (名称来自"humongous&quo ...

  8. 一起学习MVC(3)Views的学习

          _ViewStart.cshtml._Layout.cshtml.Index.cshtml三个页面加载时候的先后顺序就是: _Layout.cshtml ViewStart.cshtml ...

  9. MongoDB与SqlSugar与Ado.Net对比

    SqlSugar NET 4.+ & .NET CORE 高性能 轻量级 ORM框架,众多.NET框架中最容易使用的数据库访问技术 MongoDB与MySql的安装省略...虽然遇到了一些意外 ...

  10. JWT+Log4net配置与使用

    Log4net的优点        log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...