Rsync复制软件应用与实践
What 什麽是?
Why 为什么要用?
Whereis 在哪用?
[if !supportLists]1. [endif]什麽是rsync?
Rsync,rsync英语全称为remote synchronization 缩写rsync
是开源、高速的、可实现本地以及远程,全量以及增量的数据复制(拷贝)工具。
2、rsync的作用
工作中需要数据备份。不同的机器、本地服务器目录、不同的机房之间的数据备份。都可以rsync完成。
3、rsync功能特性
[if !vml]
[endif]
全量喝增量的区别
[if !vml]
[endif]
5、增量复制原理
使用quick check 算法,只对增量的部分复制,根据大小属性的变化进行复制。
2.x比对差异後复制,3.x一边比对一边复制。
6、rsync三种工作模式介绍
[if !supportLists]1) [endif]本地模式(local)
Rsync就是一个命令
命令操作:
Rsync命令:
[if !supportLists]A. [endif]把数据从一个地方复制到另一个地方(仅在一台机器增量),相当于cp。
[if !supportLists]B. [endif]通过加参数实现删除的功能,相当于rm命令。
[if !supportLists]C. [endif]查看属性信息功能,相当于ls。
实践:基础不牢,地动山摇。——老男孩
听话出活——老男孩
[if !vml]
[endif]
[if !supportLists]D. [endif]可以查看属性
[if !supportLists]2) [endif]远程shell模式
借助类似ssh隧道传输数据,适合不同的机器之间复制。
拉门推门思考:
Pull,拉:从远端拉取到本地。
[if !vml]
[endif]
Push,推:从本地推到远端。
[if !vml]
[endif]
[if !supportLists]3) [endif]rsync守护进程模式
首先要搭建rsync服务端(要有守护进程),然后才能在客户端实践推拉数据
重要模式,重点讲。
客户端语法暂时不讲。
Rsync服务模式:*****开启后台进程,接受别人访问。
7、rsync命令参数
[if !vml]
[endif]
--delete 删除
--exclude 排除
--exclude-from 从文件中排除
[if !vml]
[endif]
企业常用参数组合:-avz或者-vzrtopg
8、rsync守护进程模式应用实践
[if !vml]
[endif]
[root@backup~]# cat /etc/rsyncd.conf -n
1 #rsync_config_______________start
2 #created by oldboy
3 #site:http://www.oldboyedu.com
4 uid = rsync 管理备份目录的用户
5 gid = rsync 管理备份目录的用户组
6 use chroot = no 安全功能,数据是否算定到备份目录
7 max connections = 200 并发连接,同时多少客户端访问
8 timeout = 600 超时时间
9 pid file = /var/run/rsyncd.pid 进程号所在的文件
10 lock file =/var/run/rsync.lock 锁文件
11 log file =/var/log/rsyncd.log 日志文件,查看报错等
12 ignore errors 忽略错误
13 read only = false 可写
14 list = false 不允许列表
15 hosts allow = 172.16.1.0/24 哪些主机可以访问
16 hosts deny = 0.0.0.0/32 拒绝哪些主机不允许访问。
17 auth users = rsync_backup 远程虚拟连接用户
18 secrets file =/etc/rsync.password 存放密码的文件,格式:用户名:密码权限必须600
19 [backup] 【模块名】远程访问使用模块名访问
20 comment = welcome tooldboyedu backup! 说明注释
21 path = /backup/ 服务器端用户备份的目录,用户和组,rsync.rsync
启动和检查
Rsync –daemon
Systemctl start rsyncd
要了解知识的源头:
Man rsync 查命令的参数
Man rsyncd.conf 查配置参数
3)启动和检查
rsync --daemon
(c6及以前)
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd
[root@backup ~]# ps -ef|grep sync|grep -v grep #
检查进程
root 7521 1 0 11:39 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
[root@backup ~]# netstat -lntup|grep 873 #
检查端口
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 7521/rsync
tcp6 0 0 :::873 :::* LISTEN 7521/rsync
[root@backup ~]# lsof -i :873 #
检查端口
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 7521 root 3u IPv4 41439 0t0 TCP *:rsync (LISTEN)
rsync 7521 root 5u IPv6 41440 0t0 TCP *:rsync (LISTEN)
如何查看某端口对应什麽服务?上面是答案
学会获取知识的源头。
配置密码文件
面试题:如何查看某端口对应什么服务?答案就是上面两个。
[if !supportLineBreakNewLine]
[endif]
4)配置密码文件
[root@backup ~]# echo "rsync_backup:oldboy" > /etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy
[root@backup ~]# ls -l /etc/rsync.password
-rw------- 1 root root 20 4
月 15 11:51 /etc/rsync.password
Rsync服务端配置完成。
客户端操作服务器
[if !supportLists]1. [endif]方法1:认证密码文件
方法1:认证密码文件
[root@nfs01
~]# echo "oldboy" > /etc/rsync.password
[root@nfs01
~]# chmod 600 /etc/rsync.password
[root@nfs01
~]# cat /etc/rsync.password
oldboy
[root@nfs01
~]# ls -l /etc/rsync.password
-rw-------
1 root root 7 4月 15 11:55 /etc/rsync.password
方法2:
[root@nfs01
~]# echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
[root@nfs01
~]# tail -1 /etc/bashrc
export RSYNC_PASSWORD=oldboy
[root@nfs01
~]# . /etc/bashrc
[root@nfs01
~]# echo $RSYNC_PASSWORD
Oldboy
Rsync客户端 nfs01 配置完成
守护进程模式,客户端rsync的命令语法:
配置服务器端守护进程,实现数据传输:
[if !supportLists]1. [endif]服务器端守护进程。2.客户端执行命令。
[if !vml]
[endif]
此时成果
克隆完成后,配置步骤
[if !supportLists]1. [endif]主机名
[if !supportLists]2. [endif]IP
配置rsync服务C/S架构
配置服务端
安装rsync服务
配置配置文件
创建用户
创建对应目录backup 并授权用户
配置对应密码文件并授权600
配置客户端
配置密码文件并授权600
创建对应本分目录backup并授权用户为