1.概念:什么是rsync服务程序
1.概念:什么是rsync服务程序
rsync - a fast, versatile, remote (and local) file-copying tool
快速的 多功能的 远程(本地的)文件拷贝工具
本地备份 tar+定时任务
远程 scp rsync
2.搭建备份服务的意义:
保证数据不会丢失、便于数据的恢复
3.备份服务说明
a .备份工作如何完成(自动完成)
定时任务进行备份
实时同步数据备份
b. 将数据进行传输备份
4.全量和增量
全量:将所有数据都进行传输备份(效率较低 浪费时间 占用带宽)
增量:将变化数据都进行传输备份(效率快高)
增量传输备份数据原理
以其delta-transfer算法闻名。
减少通过网络数据发送数量,利用只发送源文件和目标文件之间的差异信息,从而实现数据的增量同步复制。
比对文件是否相同:
1)MD5 利用指纹
2)根据文件属性中 修改时间 文件大小
5.特性
6.应用场景
不同服务器之间的数据备份 定时任务和rsync 全网服务
存储服务器实时备份(同步) sersync+rsync 存储实时同步解决存储的单点故障
rsync守护进程方式实现数据备份存储
7.rsync的各种姿势(模式)
预备姿势:推 拉
举例
把/etc目录推到 nfs01的/tmp下面
rsync -av /etc 172.16.1.31:/tmp/
#把nfs01的/etc/hostname 拉到本地/tmp下面
rsync -avz 172.16.1.31:/etc/hostname /tmp/
详细部署过程:
rsync服务端:
第一个历程:确认软件是否安装
[root@backup ~]# rpm -qa rsync
rsync-3.1.2-4.el7.x86_64
[root@backup ~]# yum install rsync -y
[root@backup ~]# yum reinstall rsync -y(这个是重新下载)
第二个历程:编写rsync服务配置文件/etc/rsyncd.conf
vim 如果黏贴的东西前面有注释 那么复制完以后前面都会有注释
vi 不会出现这种情况
(补充:centos6系统上默认没有rsync配置文件,需要手动创建)
配置文件参数说明:
[root@backup ~]# cat /etc/rsyncd.conf
#rsync_config
#created by HQ at 2017
##rsyncd.conf start##
uid = rsync 用于管理备份目录 默认用nobody
gid = rsync 用于管理备份目录 默认用nobody
port = 873 服务的默认端口号
fake super = yes centos7 centos6 不同点 提升了rsync安全性
use chroot = no 安全相关的配置
max connections = 200 同时允许多少个人进行连接 备份数据
timeout = 300 超时时间 当网络链路上没有数据传输时开始倒计时300秒时间一到会强行端口链路
lock file = /var/run/rsync.lock 控制并发连接数,只能是max connections参数指定的数量
pid file = /var/run/rsyncd.pid 进程号码信息放到一个文件中
1)便于快速停止进程
2)可以用于判断服务是否启动
log file = /var/log/rsyncd.log 日志文件
ignore errors 忽略一些传输数据不严重问题
read only = false 对备份目录是否设置为只读权限
list = false
hosts allow = 172.16.1.0/24 配置白名单 安全策略
hosts deny = 0.0.0.0/32 配置黑名单 安全策略
auth users = rsync_backup 指定认证用户(真正根本不存在的虚拟用户)
secrets file = /etc/rsync.password 密码文件(用户和密码对应关系)
[backup] 模块 (变量)
comment = "backup dir by oldboy"
path = /backup 数据传输过来默认保存在指定 /backup
第三个历程:创建rsync虚拟用户信息
[root@backup ~]# useradd -s /sbin/nologin -M rsync
第四个历程:创建备份目录 修改所有者
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup 修改权限
第五个历程:创建密码文件修改权限
[root@backup ~]# echo "rsync_backup:oldboy123" >>/etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password
第六个历程:启动守护进程服务
centos6:rsync --daemon
centos7:systemctl start rsyncd
systemctl is-active rsyncd.service 查看是否启动
systemctl start rsyncd.service 启动
systemctl is-active rsyncd.service
systemctl enable rsyncd.service
systemctl is-enabled rsyncd.service
检查
[root@backup ~]# ps -ef |grep rsync
root 9749 1 0 16:12 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
root 9751 9490 0 16:13 pts/1 00:00:00 grep --color=auto rsync
[root@backup ~]# ss -lntup|grep rsync
tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=9749,fd=3))
tcp LISTEN 0 5 :::873 :::* users:(("rsync",pid=9749,fd=5))
第七个历程:验证
[root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
如遇到权限问题,修改属主 .属组权限,去掉fake super的注释
客户端部署
测试操作:(交互方式传输数据)
[root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
password:
实现客户端备份数据, 不需要输入密码信息 (免交互的传输数据)
01. 查看软件是否安装,并进行安装yum
02. 配置创建认证密码文件, 权限修改(600)
[root@backup ~]# echo "oldboy123" >>/etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password
03. 最终的确认工作
[root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
rsync守护进程传输数据原理
1.客户端执行rsync传输数据命令
2.服务端要对用户信息进行认证 rsync_backup
3.服务端要对用户密码进行认证 password: oldboy123 --- 查看密码文件
--password-file=/etc/rsync.password
4.客户端将数据进行上传备份
5.服务端需要更改数据文件属主 属组信息
centos6 服务端可以有能力修改文件属主和属组信息
centos7
服务端可以有能力修改文件属主和属组信息 文件属主 属组是普通用户
服务端没有能力修改文件属主和属组信息 文件属主 属组是超级用户
0 + 配置文件 fake super = yes
补充说明:属主 属组权限没有修改成功
1)配置文件 fake super = yes
2)数据没有资格向目录中进行备份
rsync.rsync /etc/hosts --- rsync -- root.root /backup
rsync参数说明
sync命令参数说明
-avz
-a 属于一个归档参数,等于直接使用 -rlptgoD 参数的效果
-r 递归备份传输数据
-l 保持链接文件属性信息
-L 将链接文件源文件信息进行备份
-p 保持普通文件属性信息(权限)
-t 保持文件时间信息不被改变(修改时间)
-g 保持文件属组信息不变
-o 保持文件属主信息不变
-D 保持设备文件属性信息
-v 显示命令执行过程
-z 传输文件时,对文件进行压缩处理
可以使传输效率更高
可以节省网络带宽
rsync备份服务总结
优点:
02. 软件配置部署简单
03. 数据传输的时候可以实现全量 或 增量备份
缺点:
01. 备份大量小文件时候,容易造成数据传输中断 传输效率不高
将大量小文件进行打包压缩
02. 备份文件容量比较大(G)容易造成数据传输中断
利用一些收费软件 七牛云存储