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
来源:CSDN
作者:慕欣
链接:https://blog.csdn.net/gaolaotou0323/article/details/103682926