zoukankan      html  css  js  c++  java
  • 2. Rsync-远程同步(上)

    课程大纲:

    1.什么是备份?
    	就是给源文件 增加 一个 副本.
    	U盘
    	D  --> E 
    
    2.为什么要做备份?
    	1.数据重要?
    	2.防止误操作
    	3.能够快速恢复
    
    3.能不能不做备份?
    	可以, 不重要的数据可以不用考虑
    
    4.备份使用什么方式?
    	①全量备份,每次都是完全拷贝,效率低下
    	②增量备份,每次仅拷贝发生变化的文件,效率高
    
    5.备份使用的工具有哪些?
    	本地备份:  cp
    	远程备份:  scp  rsync    sz rz
    
    
    6.rsync  远程同步工具
    	实现主机与主机之间的同步, 实现增量的同步.     linuxwindowsmac
    	PS: 如果将rsync当一个服务来使用,则需要知道 rsync  是个  c/s架构
    
    7.rsync 推和拉 两种方式
    	推
    	拉
    	推和拉结合使用
    
    
    8.rsync传输模式
    	1.本地传输     --->  cp
    	2.远程传输     --->  scp
    	3.守护进程     --->  
    
    
    	等价于cp命令
        Local:  rsync [OPTION...] SRC... [DEST]
    			命令   选项      源      目标
    
    	[root@backup ~]# rsync -avz anaconda-ks.cfg  /tmp/
    	
    
    	远程传输
       Access via remote shell:
        上传    Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
    					命令  选项       源   系统用户 主机IP 目标位置
    			1.我要将我本地的那个文件,推送至那台服务器的那个目录,使用的是什么用户
    			[root@backup ~]# rsync -avz ./backup_file root@172.16.1.31:/opt/
    			root@172.16.1.31's password: 		#输入31的root密码
    	
    	下载    Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    				  命令    选项     系统用户 主机IP  
    			2.我要下载那个主机的那个目录下的文件,使用的是什么系统用户.  然后下载到我本地的那个位置 
    			[root@backup ~]# rsync -avz root@172.16.1.31:/opt/backup_file   ./file.txt
    			root@172.16.1.31's password:    #输入31的root密码
    	
    	
    	目录:  /etc/  /etc    区别? 
    	#推送/etc目录下的所有文件
    	[root@backup ~]# rsync -avz /etc/ root@172.16.1.31:/opt
    	
    	#推送/etc目录以及目录下的所有文件
    	[root@backup ~]# rsync -avz /etc root@172.16.1.31:/opt
    	
    	Rsync借助SSH协议同步数据存在的缺陷    (  使用对端主机的用户名和密码   系统  )
    		1.使用系统用户(不安全)
    		2.使用普通用户(会导致权限不足情况)
    		
    	问题:
    		1.rsync -avz /etc/ root@172.16.1.31:/opt          ---> 172.168.1.31
    		2.路径问题
    		3.普通用户权限
    
    
    	守护进程模式--->一直在后台持续的运行
       Access via rsync daemon:
         Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
    		   
    	
    	1.安装
    	[root@backup ~]# yum install rsync -y
    	
    	
    	2.配置   ( 改变程序运行轨迹  )
    	[root@backup ~]# cat /etc/rsyncd.conf
    	uid = rsync
    	gid = rsync
    	port = 873
    	fake super = yes
    	use chroot = no
    	max connections = 200
    	timeout = 600
    	ignore errors
    	read only = false
    	list = false
    	auth users = rsync_backup
    	secrets file = /etc/rsync.passwd
    	log file = /var/log/rsyncd.log
    	#####################################
    	[backup]
    	comment = welcome to oldboyedu backup!
    	path = /backup
    	
    	3.根据配置创建一些初识环境:
    		3.1创建rsync用户    rsync程序需要rsync这个用户来运行
    		[root@backup ~]# groupadd rsync
    		[root@backup ~]# useradd -M -s /sbin/nologin rsync -g rsync
    		[root@backup ~]# id rsync
    		uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
    
    		3.2 虚拟用户    /etc/rsync.passwd      username:password
    		[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd
    		[root@backup ~]# chmod 600 /etc/rsync.passwd
    		
    		3.3 创建一个/backup目录
    		[root@backup ~]# mkdir /backup
    		[root@backup ~]# chown -R rsync.rsync /backup/
    	
    	4.启动
    		[root@backup ~]# systemctl start rsyncd
    		[root@backup ~]# systemctl enable rsyncd
    	
    	5.检测
    	[root@backup ~]# netstat -lntp | grep 873
    	tcp        0      0 0.0.0.0:873       0.0.0.0:*        LISTEN    8616/rsync          
    	
    	6.使用
    	Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
    	[root@nfs ~]# rsync -avz ./anaconda-ks.cfg  rsync_backup@172.16.1.41::backup
    	
    	Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    	[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
    	
    	7.客户端每次都需要使用密码?
    		1.设定变量  RSYNC_PASSWORD  (后面写脚本的时候)
    		[root@nfs ~]# export RSYNC_PASSWORD=123456
    		[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt
    	
    		2.提前准备一个文件 (只有密码的文件),  然后使用 --password-file 指定位置
    		[root@nfs ~]# echo "123456" >  /etc/rsync.pass
    		[root@nfs ~]# chmod 600 /etc/rsync.pass
    		[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt --password-file=/etc/rsync.pass
    
    
    	8.-avz 这些选项  怎么理解?
    		-a           #归档模式传输, 等于-tropgDl
    		-v           #详细模式输出, 打印速率, 文件数量等
    		-z           #传输时进行压缩以提高效率
    		-r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
    		-t           #保持文件时间信息
    		-o           #保持文件属主信息
    		-p           #保持文件权限
    		-g           #保持文件属组信息
    		-l           #保留软连接
    		-D           #保持设备文件信息
    		-P           #显示同步的过程及传输时的进度等信息
    		-L           #保留软连接指向的目标文件
    		-e           #使用的信道协议,指定替代rsh的shell程序
    		--exclude=PATTERN   #指定排除不需要传输的文件模式
    		--exclude-from=file #文件名所在的目录文件
    		--bwlimit=100       #限速传输
    		--delete            #让目标目录和源目录数据保持一致
    		
    	9. --delete   这个参数 (让目标目录和源目录数据保持一致)  危险?
    		#推:  源有什么,目标就有什么
    	[root@nfs ~]# rsync -avz /root/ rsync_backup@172.16.1.41::backup --delete
    		#拉: 目标主机有什么, 本地就有什么
    	[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup ./ --delete
    	
    	10.--bwlimit 限速, 这个参数?   1000兆    125MB/s     
    		虚拟机最高的峰值  25MB/s    5MB/s    ---> 取决于实际的情况
    		单位=KB
    	[root@nfs ~]# rsync  -avzP --bwlimit=5120  ubuntu-18.04.1-desktop-amd64.iso  rsync_backup@172.16.1.41::backup
    	sending incremental file list
    	ubuntu-18.04.1-desktop-amd64.iso   159,186,944   8%    5.12MB/s    0:05:41
    	
    	11.--exclude  这个参数  --exclude-from ?
    	
    	[root@nfs ~]# rsync  -avzP --exclude-from=pc.txt  rsync://192.168.0.128/yum  ./
    	[root@nfs ~]# cat pc.txt 
    	centos/
    	code/
    	docker-ce/
    	epel/
    	git/
    	java/
    	jenkins/
    	kubernetes/
    	mongodb/
    	mysql/
    	node/
    	non-supported/
    	php/
    	python/
    	redis/
    	sonarqube/
    	windowstools/
    	zabbix/
    	CentOS-7-x86_64-DVD-1810.iso
    	CentOS-Base.repo
    	docker-ce.repo
    	epel.repo
    	nginx.repo
    	php.repo
    	rsync_exclude.txt
    	zabbix.repo
    	各种源使用说明.txt
    
    	12.使用rsync同步学校内网yum源?
    	mysql/
    	nginx/
    	php/
    

    总结

    1.备份基本知识
    	1.什么是备份?
    	2.为什么要做备份?
    	3.能不能不做备份?
    	4.备份使用什么方式?
    	5.备份使用的工具有哪些?
    2.rsync远程同步  -->备份
    	1.rsync 推 和 拉 两种方式 以及  使用场景
    	2.rsync 传输模式  (三种)
    		本地传输  --->  没意义  cp
    		远程传输  --->  需要借助ssh协议   (使用系统用户)
    		守护进程  --->  虚拟用户
    	3.rsync守护进程如何搭建
    		1.安装
    		2.配置
    		3.启动
    		4.测试    ( 服务端  是否安装成功 )
    		5.使用    ( 客户端  能否正常使用 ) 
    		
    	4.rsync 选项:
    		-avz
    		-P
    		--delete
    		--bwlimit   ( 实际生产故障 )
    		--exclude    排除  --> 使用过程中的需求
  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/yinwu/p/11481963.html
Copyright © 2011-2022 走看看