资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
rsync数据同步工具及实战一、 rsync介绍1.1 什么是rsync两台机器之间同步的方法:scp、NFS、SFTP、http、Samba、drdb(基于文件系统同步,高效率)rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程备份的优秀工具。rsync软件适用于Unix/Linux/windows等多种操作系统平台。来自:http:/www.samba.org/rsync/rsync.html1.2 rsync简介rsync英文全称为Remote Rynchronization,从软件名称可看出来,rsync具备可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能。这个功能类似于ssh带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。rsync还可以在本地主机的不同分区或目录之间全量或增量的复制数据。但又类似cp命令,当然也优于cp命令,cp命令每次都是全量拷贝,而rsync可实现增量拷贝。提示:利用rsync还可以实现删除文件和目录的功能,这又相当于rm功能。一个rsync相当于scp、cp、rm,但还优于它们每一个命令。在同步备份数据时,默认情况下 rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可以根据权限、属主等属性的变化同步,但需要指定相应的参数。甚至可以实现只同步一个文件里有变化的内容部分,所有rsync可以实现快速的同步备份数据。提示:传统的cp、scp同居拷贝每次均为完整的拷贝,而rsync除了可以完整拷贝,还具备增量拷贝的功能,因此从同步数据的性能及效率上,rsync更胜一筹。1.3 rsync特点:(1) 支持拷贝特殊文件如连接文件、设备等。(2) 有排除指定文件或目录的同步的功能,相当于打包命令tar的排除功能。(3) 可做到保持原文件或目录的权限、时间、软硬连接、属主、组等所有属性均不改变,-p。(4) 可实现增量同步,即只同步发生变化的数据,因此数据传输效率很高。(5) 可使用rcp、rsh、ssh等方式来配合传输文件(rsync本身不对数据加密)(6) 可通过socket(进程方式)传输文件和数据。(7) 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的数据备份即镜像。1.4 rsync的企业工作场景说明1、rsync定时同步数据备份企业生产场景集群架构服务器备份方案:cron+rsync全网服务器数据备份解决方案提出及负责实施1) 针对公司重要数据备份混乱状况和领导提出备份全网数据的解决方案。2) 通过本地打包备份,然后rsync结合inotify应用实时把全网数据统一备份到一个固定存储服务器上,并在服务器上通过脚本检查并报警管理员备份结果。3) 定期将IDC机房的数据备份到公司内部的服务器上,防止机房地震及火灾等问题导致数据丢失。2、 rsync实时同步数据备份rsync结合inotify的功能做实时的数据同步备份:rsync+inotify或sersync二、 rsync的工作方式一般来说,rsync大致使用三种重要的传输数据的方式,分别为:1.单个主机本地之间的数据传输(此时类似cp命令的功能)2.借助rcp、ssh等通道来传输数据(此时类似scp命令的功能)3.以守护进程(socket)的方式传输数据(这个是rsync自身重要的功能)可以通过man rsync查看官方文档介绍:http:/www.samba.org/ftp/rsync/rsync.htmlNAME rsync a fast, versatile, remote (and local) file-copying toolSYNOPSIS Local: rsync OPTION. SRC. DEST Access via remote shell: Pull: rsync OPTION. USERHOST:SRC. DEST Push: rsync OPTION. SRC. USERHOST:DEST Access via rsync daemon: Pull: rsync OPTION. USERHOST:SRC. DEST rsync OPTION. rsync:/USERHOST:PORT/SRC. DEST Push: rsync OPTION. SRC. USERHOST:DEST rsync OPTION. SRC. rsync:/USERHOST:PORT/DESTUsages with just one SRC arg and no DEST arg will list the source files instead of copying.2.1 本地数据传输模式(local-only mode)rsync本地传输模式的语法为:rsync OPTION. SRC. DEST1、 rsync为同步命令;2、 OPTION.为同步时的参数选项;3、 SRC为源,即待拷贝的分区、文件或目录等;4、 DEST为目的分区、文件或目录等。直接本地同步:相当于cp命令:实例1:把系统的hosts文件同步到/opt目录rootCHQ # rsync /etc/hosts /tmp/rootCHQ # cat /tmp/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4:1 localhost localhost.localdomain localhost6 localhost6.localdomain6rsync常用参数选项说明:-v, -verbose 详细模式输出,传输时的进度等信息-z, -compress 传输时进行压缩以提高传输效率,-compress-level=NUM可按级别压缩。-a, -archive 以递归方式传输文件,并保持所有文件的属性,相当于-rlptgoD。-r, -recursive 对其下所有子目录以递归模式传输,注意是小写r。-t, -times 保持文件的时间信息。-o, -owner 保持文件的属主信息。-p, -perms 保持文件的权限。-g, -group 保持文件的属组信息。-P -progress 显示同步的过程及传输进度等信息。-D -devices 保持设备文件信息。-l, -links 保持软连接。-e, -rsh=COMMAND,使用的信道协议,指定替代rsh的shell通道,如ssh。-d -delete 使目标目录内容和源保持目录一致,删除不同的文件。-exclude=PATTERN 指定排除不需要传输的文件模式。保持同步目录及文件属性:生产环境常用的参数为-avzP,放入脚本中,可以把-v和-P去掉。2.2 借助ssh通道从远端主机拉取推送例子实践:拉取pull:oldboy888CHQ $ rsync -avzP -e ssh -p 22 oldboy888192.168.47.133:/oldboy /tmpreceiving incremental file listoldboy/oldboy/2018.txt 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/3)oldboy/test.txt 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=0/3)sent 53 bytes received 175 bytes 2.27 bytes/sectotal size is 0 speedup is 0.00oldboy888CHQ $ ll /tmp/oldboytotal 0-rw-r-r- 1 oldboy888 oldboy888 0 Mar 28 21:40 2018.txt-rw-r-r- 1 oldboy888 oldboy888 0 Mar 27 23:21 test.txt推送push:oldboy888CHQ $ rsync -avzP -e ssh -p 22 /tmp oldboy888192.168.47.133:sending incremental file listtmp/tmp/hosts 158 100% 0.00kB/s 0:00:00 (xfer#1, to-check=6/8)tmp/push.txt 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=5/8)tmp/.ICE-unix/tmp/oldboy/tmp/oldboy/2018.txt 0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=2/8)tmp/oldboy/push.sh 0 100% 0.00kB/s 0:00:00 (xfer#4, to-check=1/8)tmp/oldboy/test.txt 0 100% 0.00kB/s 0:00:00 (xfer#5, to-check=0/8)sent 475 bytes received 119 bytes 5.85 bytes/sectotal size is 158 speedup is 0.27oldboy888hxw $ ll /tmptotal 8-rw-r-r- 1 oldboy888 oldboy888 158 Apr 15 2018 hostsdrwxr-xr-x 2 oldboy888 oldboy888 4096 Apr 15 2018 oldboy-rw-rw-r- 1 oldboy888 oldboy888 0 Apr 15 2018 push.txt限速参数:-bwlimit=KBPSrsync -avzP -bwlimit=KBPS=10000 -e ssh -p 22 /tmp oldboy888192.168.47.133:特别提示:本文免密钥验证连接分发文件是基于普通用户oldboy的,如果要实现hosts等文件的推送工作,需要root权限的,该如何实现呢?方法有三:法一:可以把oldboy用户配置成sudo权限用户,然后就可以实现通过sudo功能来实现普通用户推送只有root才能处理的问题了。(推荐该方法)法二:seduid权限位,即把所有客户端如scp、cp、echo等命令修改为seduid位,这样在推送文件时就可以使用上述命令了。法三:配置root用户的免登录验证,但这样一来又会
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号