Rsync远程同步

1.什么是备份?

指 对一个文件创建一个副本

2.为什么要做备份?

数据重要
保证数据安全
快速恢复数据

3.能不能不做备份?

可以, 因为数据不重要,可不考虑.

4.备份应该怎么做?

增量:  效率高, 耗时低, 占用空间小
全量:  效率低, 耗时长, 占用空间大

5.备份使用什么工具?

cp		本地备份
scp		远程拷贝, 全量备份  
rsync	远程同步, 全量和增量备份

6.备份工具rsync基本介绍?

远程同步工具,  支持不同主机系统之间同步.  (windows linux mac)
并且能实现,全量与增量的同步方式
		rsync    C/S 架构     客户端--->服务端
		rsync 	 873/tcp

7.rsync备份工具应用几种场景?

1.推
		客户端推送数据至服务端
		电脑--->云盘

2.拉
		客户端拉取服务上的数据
		电脑  <---- 云盘

3.异地备份

8.rsync三大传输模式?

# yum install rsync -y

1.本地传输 类似于使用cp

Local:  rsync [OPTION...] SRC... [DEST]

文件
	[root@backup ~]# rsync -avz oldxu.com /tmp/
	目录
	[root@backup ~]# rsync -avz /etc/ /tmp/

注意: 每次拷贝都是增量
		1.如果有新增, 拷贝新增
		2.如果修改历史拷贝过的文件, 则同步修改后的文件

2.远程传输 类似于scp,基于ssh协议

Access via remote shell:

下载	Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]

下载31服务器上/root/31.txt文件,至本地的当前目录,使用31的root身份
	 [root@backup ~]# rsync -avz root@172.16.1.31:/root/31.txt ./

注意: 加/ 和不加/

		加/ :  会下载这个目录下的所有内容至本地
		不加/: 下载目录,以及目录下的所有内容至本地
	[root@backup ~]# rsync -avz root@172.16.1.31:/opt/etc_test/ ./
	[root@backup ~]# rsync -avz root@172.16.1.31:/opt/etc_test 

推送本地的文件或目录,至远程主机31的/opt目录下,使用的是31的root身份

    推送 	Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
	[root@backup ~]# rsync -avz ./41.txt root@172.16.1.31:/opt/
	[root@backup ~]# rsync -avz ./etc_test root@172.16.1.31:/opt/

缺陷:

使用ssh协议
			1.权限过高不安全
			2.权限太低,无法推送

3.守护进程 以服务的方式运行在后台

1.安装
		[root@backup ~]# yum install rsync -y 

2.配置
		[root@backup ~]# rpm -qc rsync
		/etc/rsyncd.conf
		/etc/sysconfig/rsyncd	

 --- 配置详解
		[root@backup ~]# vim /etc/rsyncd.conf
		uid = rsync                      # 运行进程的用户
		gid = rsync                      # 运行进程的用户组
		port = 873                       # 监听端口
		fake super = yes                 # 不需要rsync已root身份运行,就可以存储文件的完整属性
		use chroot = no                  # 禁锢推送的数据至某个目录, 不允许跳出该目录
		max connections = 200            # 最大连接数
		timeout = 600                    # 超时时间
		ignore errors                    # 忽略错误信息
		read only = false                # 对备份数据可读写
		list = false                     # 不允许查看模块信息
		auth users = rsync_backup        # 定义虚拟用户,作为连接认证用户
		secrets file = /etc/rsync.passwd # 定义rsync服务用户连接认证密码文件路径

		[backup]                		# 定义模块信息
		path = /backup         		 	# 定义接收备份数据目录

3.根据配置要做如下操作:

1.创建进程运行的用户
			[root@backup ~]# useradd rsync -M -s /sbin/nologin
			[root@backup ~]# id rsync
			uid=1001(rsync) gid=1001(rsync) 组=1001(rsync)

2.创建虚拟用户以及虚拟用户的密码/etc/rsync.passwd
			格式: Username:Password
			[root@backup ~]# cat /etc/rsync.passwd 
			rsync_backup:1
			[root@backup ~]# chmod 600 /etc/rsync.passwd

3.创建一个接收备份数据目录
			[root@backup ~]# mkdir /backup
			[root@backup ~]# chown -R rsync.rsync /backup/

3.启动

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

4.检查

[root@backup ~]# netstat -lntp
		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      22463/rsync  

5.测试 Access via rsync daemon:

将本地的某个文件,推送到服务端backup目录,使用的是虚拟的用户名和密码

	Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
	[root@nfs01 ~]# rsync -avz 31.txt rsync_backup@172.16.1.41::backup	

Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
	[root@nfs01 ~]# rsync -avz  rsync_backup@172.16.1.41::backup ./

附赠: 进程能够以什么样的方式去访问一个文件, 取决于运行该进程的用户身份,对这个文件拥有什么权限

问题:

1.防火墙
	selinux		 
	firewalld	 No route to host (113)

2.密码文件不是复制,而是手写

3.模块找不到, 粘贴时使用的vim

9.rsync作为服务端一些选项 如何使用?

命令       选项      参数
	 command   option    file
	 
	-avz
	
	-a           #归档模式传输, 等于-tropgDl
	-v           #详细模式输出, 打印速率, 文件数量等
	-z           #传输时进行压缩以提高效率
	-r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
	-t           #保持文件时间信息
	-o           #保持文件属主信息
	-p           #保持文件权限
	-g           #保持文件属组信息
	-l           #保留软连接
	-P           #显示同步的过程及传输时的进度等信息
	-D           #保持设备文件信息
	-L           #保留软连接指向的目标文件
	-e           #使用的信道协议,指定替代rsh的shell程序  -e 'ssh'
	--exclude=PATTERN   #指定排除不需要传输的文件模式
	--exclude-from=file #文件名所在的目录文件
	--bwlimit=100       #限速传输
	--partial           #断点续传
	--delete            #让目标目录和源目录数据保持一致
		
		
	-avz

1.显示传输的每s的速率?

	[root@nfs01 ~]# dd if=/dev/zero of=./size_file bs=1M count=300
	[root@nfs01 ~]# rsync -avzP size_file  rsync_backup@172.16.1.41::backup 
	sending incremental file list
	size_file
	314,572,800 100%   81.20MB/s    0:00:03 (xfr#1, to-chk=0/1)

2.限速,非常重要?

		2.1) 不限速
		[root@nfs01 ~]# rsync -avzP size_1G  rsync_backup@172.16.1.41::backup 
		...
		  1,048,576,000 100%   78.85MB/s    0:00:12 (xfr#1, to-chk=0/1)

2.2) --bwlimit限速 (默认单位为兆  -->  兆  换算为带宽  * 8 = )
		[root@nfs01 ~]# rsync -avzP --bwlimit=10 size_1G  rsync_backup@172.16.1.41::backup
		....
		   566,394,880  54%   10.12MB/s    0:00:46

3.–delete 强制同步

1.在推送时添加--delete, 强制让服务端与客户端保持一致
2.在拉取时添加--delete, 强制让客户端与服务端保持一致 

4.–exclude --exclude-from 排除

1.重要的不希望别人看见
2.文件太大,无法移动

排除单个文件或多个文件

# rsync -avz --exclude=origin/all.txt ./origin  rsync_backup@172.16.1.41::backup 
# rsync -avz --exclude=origin/3.txt --exclude=origin/all.txt ./origin  rsync_backup@172.16.1.41::backup 

排除多个文件 ( 准备一个文件, 将要排除的内容写入文件中, 最后指定排除的文件即可)=

[root@nfs01 ~]# cat pc.txt 
	origin/5.txt
	origin/8.txt
	origin/9.txt
	
	[root@nfs01 ~]# rsync -avz --exclude-from=pc.txt  ./origin  rsync_backup@172.16.1.41::backup 

5.免交互

1.选项 --password-file=
2.设定环境变量

第一种方式:
[root@nfs01 ~]# echo "1" > /etc/rsync.pass
	[root@nfs01 ~]# chmod 600 /etc/rsync.pass 
	[root@nfs01 ~]# rsync -avz --exclude-from=pc.txt  ./origin  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass
第二种方式:
[root@nfs01 ~]# export RSYNC_PASSWORD=1
[root@nfs01 ~]# rsync -avz --exclude-from=pc.txt  ./origin  rsync_backup@172.16.1.41::backup

10.rsync整个实现的流程?

进程运行用户
虚拟用户

11.总结:

1.备份基础知识
		1.什么是备份?
		2.为什么要备份?
		3.备份的分类?
			数据备份
			系统备份
		4.备份的方式?
			全量备份	效率低, 占用空间高
			增量备份	效率高, 占用空间低
		5.备份的工具?
			rsync	远程同步
			scp		远程拷贝
			cp		本地拷贝
	2.介绍rsync
		远程同步工具, 能够实现不同主机系统之间的同步
		C/S架构    服务端  客户端
		B/S架构    服务端  浏览器
	3.rsync工作模式
		推   push
		拉   pull
		
		异地方式
	
	4.rsync传输模式
		本地传输
		远程传输		A ---> B    A  < --- B
		守护进程
	
	5.守护进程
		1.安装
		2.配置
			2.1 根据配置初始化系统
		3.启动
		4.检查
			端口
			进程
		5.测试
	6.选项
		--delete
		--exclude  --exclude-from
		--bwlimit
		--password-file   |  export RSYNC_PASSWORD
	7.整个实现流程?
		1.客户端
		2.系统用户
		3.虚拟用户
		4.备份目录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值