集群第一阶段
rsync 赋值软件应用与实践
1、什么是rsync?
rsync,Rsync英文全程为Remote stnchronization 缩写rsync
是开源、高速的、可实现本地以及远程,圈梁以及增量的数据复制(拷贝)工具。
官方链接资料:http://www.samba.org/ftp/rsync/rsync.html
2、全量复制和增量复制的区别?
3、rsync的作用
工作中需要定时/实时数据备份。本地服务器目录、不同的机器、不同机房之间的数据备份。都可以用rsync来完成。
4、rsync功能特性
5、增量复制原理
使用quick check算法,只对增量的部分复制,根据大小属性的变化进行复制
2.x比对差异后复制
3.x一边比对一边复制
6、rsync三种工作模式介绍
1)、本地(local)
rsync就是一个命令
命令操作:
rsync命令
a.把数据从一个地方复制到另一个地方(仅在一台机器增量),相当于cp。
b.通过加参数实现删除的功能,相当于rm命令
c.查看属性信息功能,相当于ls
实践:
基础不牢,地动山摇。
听话出活,跑通在变通。
a、拷贝实践
[root@backup ~]# ls /opt
[root@backup ~]# rsync /etc/hosts /opt
[root@backup ~]# ls /opt
hosts
[root@backup ~]# \cp /etc/hosts /opt
b、删除实践
[root@backup ~]# touch /null.txt
[root@backup ~]# cat /opt/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01
db01.etiantian.org
172.16.1.61 m01
[root@backup ~]# rsync --delete /null.txt /opt/hosts
rsync: --delete does not work without --recursive (-r) or --dirs (-d).
rsync error: syntax or usage error (code 1) at main.c(1567) [client=3.1.2]
[root@backup ~]# rsync -r --delete /null.txt /opt/hosts
[root@backup ~]# cat /opt/hosts
删除所有文件:
[root@backup ~]# mkdir /null
[root@backup ~]# rsync -r --delete /null.txt /opt/hosts
[root@backup ~]# ls /opt/
c、查看属性
[root@backup ~]# ls /opt
[root@backup ~]# rsync /etc/hosts
-rw-r--r-- 332 2019/04/12 11:27:47 hosts
2)、远程shell模式
借助类似ssh隧道传输数据,适合不同的机器之间复制。
异地拷贝
拉门 推门 思考:
pull,拉:从远端拉取到本地。
rsync [OPTION...] [USER@]HOST:SRC...
rsync命令 参数选项 [认证用户]@[主机及地址]:[原路径]
push,推:从本地推到远端。
rsync [OPTION...] [USER@]HOST:SRC...
push实践:
[root@nfs01 ~]# rsync -avz /etc/hosts root@172.16.1.41:/opt/
The authenticity of host '172.16.1.41 (172.16.1.41)' can't be established.
ECDSA key fingerprint is SHA256:pSmZZNpT7WLg8LxBk9gFez5RNq3gaxYgpo/Kd9sv1Do.
ECDSA key fingerprint is MD5:ce:42:93:22:32:b3:9c:4a:71:81:b9:f6:50:e5:bb:6b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.41' (ECDSA) to the list of known hosts.
root@172.16.1.41's password:
sending incremental file list
hosts
sent 218 bytes received 35 bytes 17.45 bytes/sec
total size is 332 speedup is 1.31
检查:
[root@backup ~]# cd /opt
[root@backup /opt]# ls
hosts
[root@nfs01 ~]# rsync -avz /etc/hosts root@172.16.1.41:/opt/
[root@nfs01 ~]# rsync -avz /etc/hosts -e "ssh -p 22" root@172.16.1.41:/opt/
上述命令是等价的。-e 指定通道 ssh服务连接客户端 -p 22 指定22端口
[root@nfs01 ~]# rsync -avz /etc/hosts -e "ssh -p 22" root@172.16.1.41:/opt/
root@172.16.1.41's password:
sending incremental file list
sent 43 bytes received 12 bytes 15.71 bytes/sec
total size is 332 speedup is 6.04
拉的命令:
[root@nfs01 ~]# rsync -avz root@172.16.1.41:/opt/hosts /opt
[root@nfs01 ~]# rsync -avz -e "ssh -p 22" root@172.16.1.41:/opt/hosts /opt
[root@nfs01 ~]# rsync -avz root@172.16.1.41:/opt/hosts /opt
root@172.16.1.41's password:
receiving incremental file list
hosts
sent 43 bytes received 218 bytes 74.57 bytes/sec
total size is 332 speedup is 1.27
推拉:
a、参照物,执行命令的机器
b、root@172.16.1.41 使用的用户和主机,就用主机和用户的密码。
强调一个重点:rsync
null和null/ 区别 ,null是目录和目录下的内容
null/ 只是目录下的内容,不含本身。
3)、rsync 守护进程模式
首先要搭建rsync服务的(要有守护进程),然后才能在客户端实现推拉数据。
企业运维的重要模式,重点
7、rsync命令参数
参数:
企业常用参数组合:-avz或者-vzrttopg
官方链接资料
8、rsync守护进程模式应用实践
[root@backup ~]# rsync --version
rsync version 3.1.2 protocol version 31
[root@backup ~]# yum install rsync(不需要)
备份:
[root@backup ~]# cp /etc/rsyncd.conf {,.ori}
[root@backup ~]# cat >/etc/rsyncd.conf<<EOF
> #rsync_config_______________start
> #created by oldboy
> uid = rsync //管理备份目录的用户
> gid = rsync //管理备份目录的用户组
> use chroot = no //安全功能,是否锁定到备份目录
> max connections = 200 //并发链接,同事多少客户端访问
> timeout = 600 //超时时间
> pid file = /var/run/rsyncd.pid //进程号所在文件
> lock file = /var/run/rsync.lock //锁文件
> 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 //存放密码文件,格式: 用户名:密码、权限要求 必须600
> [backup] //[模块名] 远程访问使用模块名访问
> comment = welcome to oldboyedu backup! //说明 注释
> path = /backup/ //服务器端用于备份的目录。用户和组,rsync.rsync
> EOF
要了解知识的源头:
man rsync 查命令的参数
man rsynvd.conf 查配置的参数
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1004(rsync) gid=1004(rsync) 组=1004(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 4月 15 12:13 /backup/
[root@backup ~]#
3)、启动和检查
rsync --daemon centos6
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
[root@backup ~]# systemctl status rsyncd
[root@backup ~]# ps -ef|grep sync
root 9792 1 0 11:39 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
root 9826 9704 0 11:41 pts/0 00:00:00 grep --color=auto sync //检查进程
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 9792/rsync
tcp6 0 0 :::873 :::* LISTEN 9792/rsync //检查端口
[root@backup ~]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 9792 root 3u IPv4 44770 0t0 TCP *:rsync (LISTEN)
rsync 9792 root 5u IPv6 44771 0t0 TCP *:rsync (LISTEN) //检查端口
面试题:如何查看某端口对应什么服务?答案就是上面两个。
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服务的配置完成。
(2)以下操作都是在客户端服务器完成
以下方法二选一
方法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_PASSWORDoldboy
rsync客户端nfs01配置完成
(3)、守护进程模式,客户端rsync的命令语法:
配置服务器端守护进程,实现数据传输。
1、服务器端守护进程。 2、客户端执行命令
pull,拉:从远端拉取到本地。
语法1:(常用)
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync命令 参数选项 [虚拟用户]@[主机及地址]:[模块名] [本地路径]
语法2:
push,推:从本地推到远端。
rsync [OPTION...] [USER@]HOST:SRC...
(4)、测试成果
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1004(rsync) gid=1004(rsync) 组=1004(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 4月 15 12:13 /backup/
[root@backup ~]#