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
Copyright © 高程程 all right reserved,powered by Gitbook修订于: 2021-05-18 21:14:35

results matching ""

    No results matching ""