Rsync备份

rsync概述

rsync是一款开源的备份工具,它可以在不同的主机之间进行同步数据,可以实现完全备份和增量备份,因此非常适合用于架构集中式备份和异地备份。
常见备份方式:

完全备份:对所有数据做一次全备份
增量备份:只备份距上一次备份之后有变化的数据
差异备份:相对上一次做完全备份后有变化的数据

rsync运用场景

数据同步的两种方式:

  1. pull:(download)rsync备份服务器拉取所有主机上的数据,备份服务器开销大。

在这里插入图片描述

  1. push:(upload)所有主机推送本地数据至rsync备份服务器,这种方式数据同步缓慢,适合少量数据备份。

在这里插入图片描述
3. 分布式备份场景
在这里插入图片描述

rsync三种数据传输方法

3.1、本地传输:单个主机本地之间的数据传输(类似cp命令)
rsync常用选项:

-a:归档模式输出,等于-toprglD
-v:详细模式输出
-z:传输时进行压缩
-o:保留文件属主信息
-t:保留文件时间信息
-p:保留文件权限信息
-g:保留文件属组信息
-l:保留软连接
-D:保留设备文件信息
-L:保留软连接指向的目标文件
-e:使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN:指定排除不需要传输的文件模式
--exclude-from=file:从目录文件读取排除规则
--bwlimit=100:限速传输
--partial:断点续传
--delete:让目标目录和源目录数据保持一致

用法:rsync [OPTION…] SRC… [DEST]
在这里插入图片描述
在这里插入图片描述
rsync默认只做增量备份的同步,如果想要实现完全同步则添加–delete参数即可。
3.2、远程:通过ssh协议传输数据。(类似scp命令)
用法:
Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

//复制hosts文件到目标主机指定路径下
[root@localhost ~]# scp /etc/hosts root@192.168.8.41:/opt/
[root@localhost ~]# rsync -avz /etc/hosts root@192.168.8.41:/tmp/

用远程同步数据可以很明显地看到存在的弊端:1.暴露了对方主机的系统用户名称、2.数据路径的暴露。那么该如何解决这样的问题?下面这种备份方式就很好的解决了这样的问题。
3.3、守护进程:不直接使用系统用户的方式,更加安全
用法:
Pull: rsync [OPTION…] [USER@]HOST::SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
实例:
服务端:
1.安装软件

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

2.修改配置文件/etc/rsyncd.conf

#全局模块
uid = rsync		   //运行进程的用户
gid = rsync			//运行进程的用户组
fake super = yes			//允许存储文件的完整属性(3. 1版本之后)
use chroot = no				//禁止用户切换目录
max connections = 40				//最大连接数
timeout = 900				//超时时间
ignore errors				忽略错误信息
port = 873				//端口号;默认是873
read only = false				//对备份数据可读写
list = false					//不允许查看模块信息
auth users = rsync_backup				//定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.passwd				//定义rsync服务用户连接认证密码文件路径
#局部模块
[backup]		//定义模块名称
comment = welcome login  //模块注释信息
path = /backup		//定义接收备份数据的目录

3.创建程序用户

[root@localhost ~]# useradd -M -s /sbin/nolgin rsync

4.创建备份目录并修改所属主和组

[root@localhost ~]# mkdir /backup
[root@localhost ~]# chown -R rsync:rsync /backup/

5.创建虚拟用户认证文件

[root@localhost ~]# echo "rsync-backup:1" >/etc/rsync.passwd 			//冒号后面的为密码,务必与配置文件中secrets file定义的一致

6.启动服务并设置开机自启

[root@localhost ~]# systemctl start rsyncd
[root@localhost ~]# systemctl enable rsyncd

客户端:
安装软件:

yum install -y rsync

验证:

[root@localhost ~]# rsync -avz /etc/ rsync_backup@172.16.1.41::backup
Password: 
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
[root@localhost ~]# 

没成功查到服务端/var/log/messages报错信息如下:
rsyncd[2042]: secrets file must not be other-accessible (see strict modes option)

解决:修改密码文件权限为700
chmod 700 /etc/rsync_passwd

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值