架构—rsync基础

ⅰ亾dé卋堺 提交于 2019-12-25 05:33:53

rsync服务

基础:

什么是备份?

​ 在原来的数据上在完全复制一份放到别处储存起来;

为什么要备份?

1. 数据很重要
2. 数据有所丢失,可以快速找回

可不可以不备份?

​ 可以选择性备份,重要的数据需要备份,不重要的可以抛弃

备份的工具?

​ 本地的备份 cp

​ 异地备份 scp

什么是rsync?

​ rsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于Unix/linux/Windows等多种操作系统平台。

​ linux —> windows mac —> linux Unix —> linux

rsync运行模式:C/S client 客户端 / server 服务端

rsync备份类型:

​ 全备:完全的备份, 速度慢,占资源

​ 增备:只备份新增加的数据, 速度快,占用资源少

rsync备份方式:

​ push 推:上传

​ 缺点:客户端传数据压力大

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fvbHWxTz-1577169936311)(C:\Users\oldboy\AppData\Roaming\Typora\typora-user-images\1574903839644.png)]

​ pull 拉:下载

​ 缺点:服务端拉数据的时候压力大

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8a7S76Zj-1577169936312)(C:\Users\oldboy\AppData\Roaming\Typora\typora-user-images\1574903830410.png)]

​ 实际应用场景:

​ 推和拉结合方式:

​ web端分别上传到备份源1和备份源2,备份源3再去1和2拉取数据

​ 大量服务器备份时使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y7JRp5OV-1577169936313)(C:\Users\oldboy\AppData\Roaming\Typora\typora-user-images\1574903805202.png)]

​ 异地备份:

​ 北京上传文件后上海想下载需要一个中转服务器,就是备份服务器同步至云端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hWNhPwF-1577169936316)(C:\Users\oldboy\AppData\Roaming\Typora\typora-user-images\1574904157051.png)]

rsync传输模式:

本地传输:类似于cp
	Local:  rsync [OPTION...] SRC... [DEST]
	
	rsync:命令
	[OPTION...]:选项
	SRC:原文件
	[DEST]:目的文件

​ cp : 全量备份,每次都询问是否覆盖原文件;

​ rsync:增量备份,文件已存在或没有变化则不再传输,文件不存在或有变化则覆盖;

异地传输:类似于scp

Access via remote shell:
     Pull: rsync [OPTION...][USER@]HOST:SRC... [DEST]
     Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
     
     rsync:命令
     [OPTION...]:选项
     [USER@]:用户
     HOST:主机ip
     SRC:源文件
     [DEST]:目标文件
     
     pull:
     [root@nfs ~]# rsync -avz root@172.16.1.41:/tmp/33.txt ./
     
     push:
     [root@nfs ~]# rsync -avz 11.txt root@172.16.1.41:/tmp/

​ scp : 全量备份,每次都覆盖原文件;

​ rsync:增量备份,文件已存在或没有变化则不再传输,文件不存在或有变化则覆盖;

​ 注意:传输文件后面加 ‘’/’ 与不加 ‘/’

​ 加 ‘/’ :就是传输目录下的文件到指定远程目录

​ 不加 ‘/’:就是传输该目录到指定远程的目录下

报错:
root@172.16.1.41's password: 
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(178) [sender=3.1.2]

原因:
该死的环境变量被邱导留作业要加 echo,把echo都删掉就好了

守护进程:

Access via rsync daemon:
     Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
     
     rsync -avz rsync_backup@172.16.1.41::lhd /tmp/
     
     Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

服务实践:

主机名 外网IP 内网IP 身份
backup 10.0.0.41 172.16.1.41 服务端
nfs 10.0.0.31 172.16.1.31 客户端

服务端配置:(backup机器上)

1.下载rsync

[root@nfs ~]# yum install -y rsync

2.配置rsync服务

[root@nfs ~]# vim /etc/rsyncd.conf
#用户的uid
uid = rsync
#用户的组id
gid = rsync
#服务的端口
port = 873
#无需让rsync以root身份运行,允许接收文件的完整属性
fake super = yes
#不允许操作传输文件以外文件
use chroot = no
#最大连接数
max connections = 200
#超时时间
timeout = 600
#忽略错误
ignore errors
#开启只读权限
read only = false
#查看模块信息
list = false
#虚拟用户
auth users = rsync_backup
#密码文件
secrets file = /etc/rsync.passwd
#日志文件
log file = /var/log/rsyncd.log
#####################################
#模块(随便你写什么)
[lhd]
#备注
comment = welcome to oldboyedu backup!
#目录
path = /backup



uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = yes
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
######################################
[data]
path = /data

3.添加用户

[root@nfs etc]# useradd rsync -s /sbin/nologin -M
[root@nfs etc]# id rsync
uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)

4.配置密码文件

[root@nfs etc]# cat /etc/rsync.passwd 
rsync_backup:123456
[root@nfs tmp]# chmod 600 /etc/rsync.passwd

5.创建目录

[root@backup tmp]# mkdir /backup

6.启动服务

[root@backup tmp]# systemctl start rsyncd

7.验证服务是否启动

[root@backup tmp]# !net
netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      10747/rsync        
tcp6       0      0 :::873                  :::*                    LISTEN      10747/rsync        
[root@backup tmp]#

客户端配置:(nfs机器上)

1.安装rsync

[root@nfs etc]# yum install -y rsync

2.创建密码文件

[root@nfs etc]# cat /etc/rsync.passwd 
123456
[root@nfs tmp]# chmod 600 /etc/rsync.passwd
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!