ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:26.54KB ,
资源ID:4034671      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4034671.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(RSync实现文件备份同步.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

RSync实现文件备份同步.docx

1、RSync实现文件备份同步RSync实现文件备份同步一、什么是rsyncrsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。rsync 包括如下的一些特性:能更新整个目录和树和文件系统;有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;对于安装来说,无任何特殊权限要求;对于多个文件来说,内部流水线减少文

2、件等待的延时;能用rsh、ssh 或直接端口做为传输入端口;支持匿名rsync 同步文件,是理想的镜像工具;二、架设rsync服务器架设rsync 服务器比较简单,写一个配置文件rsyncd.conf 。文件的书写也是有规则的,我们可以参照rsync.samba.org 上的文档来做。当然我们首先要安装好rsync这个软件才行;A、rsync的安装;获取rsyncrysnc的官方网站:http:/rsync.samba.org/可以从上面得到最新的版本。目前最新版是3.05。当然,因为rsync是一款如此有用的软件,所以很多Linux的发行版本都将它收录在内了。软件包安装# sudo apt-

3、get install rsync 注:在debian、ubuntu 等在线安装方法;# yum install rsync 注:Fedora、Redhat 等在线安装方法;# rpm -ivh rsync 注:Fedora、Redhat 等rpm包安装方法;其它Linux发行版,请用相应的软件包管理方法来安装。源码包安装tar xvf rsync-xxx.tar.gzcd rsync-xxx./configure -prefix=/usr ;make ;make install 注:在用源码包编译安装之前,您得安装gcc等编译开具才行;B、配置文件rsync的主要有以下三个配置文件rsync

4、d.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。具体步骤如下:#touch /etc/rsyncd.conf #创建rsyncd.conf,这是rsync服务器的配置文件。#touch /etc/rsyncd.secrets #创建rsyncd.secrets ,这是用户密码文件。#chmod 600 /etc/rsyncd/rsyncd.secrets #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600,

5、 否则无法备份成功!#touch /etc/rsyncd.motd下一就是我们修改rsyncd.conf和rsyncd.secrets和rsyncd.motd文件的时候了。设定/etc/rsyncd.confrsyncd.conf是rsync服务器主要配置文件。我们先来个简单的示例,后面在详细说明各项作用。比如我们要备份服务器上的/home和/opt,在/home中我想把easylife和samba目录排除在外;# Distributed under the terms of the GNU General Public License v2# Minimal configuration fi

6、le for rsync daemon# See rsync(1) and rsyncd.conf(5) man pages for help# This line is required by the /etc/init.d/rsyncd scriptpid file = /var/run/rsyncd.pidport = 873address = 192.168.1.171#uid = nobody#gid = nobodyuid = rootgid = rootuse chroot = yesread only = yes#limit access to private LANshost

7、s allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0hosts deny=*max connections = 5motd file = /etc/rsyncd.motd#This will give you a separate log file#log file = /var/log/rsync.log#This will log every file transferred - up to 85,000+ per user, per sync#transfer logging = yeslog format = %t %a %m

8、 %f %bsyslog facility = local3timeout = 300rhel4homepath = /homelist=yesignore errorsauth users = rootsecrets file = /etc/rsyncd.secretscomment = This is RHEL 4 dataexclude = easylife/ samba/rhel4optpath = /optlist=noignore errorscomment = This is RHEL 4 optauth users = easylifesecrets file = /etc/r

9、syncd/rsyncd.secrets注:关于auth users是必须在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如auth users = easylife,root设定密码文件密码文件格式很简单,rsyncd.secrets的内容格式为:用户名:密码我们在例子中rsyncd.secrets的内容如下类似的;在文档中说,有些系统不支持长密码,自己尝试着设置一下吧。easylife:keerroot:mikechown root.root rsyncd.secrets #修改属主chmod 600 rsyncd.secrets #修改权限注:1、将rsyncd.secr

10、ets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功! 出于安全目的,文件的属性必需是只有属主可读。2、这里的密码值得注意,为了安全你不能把系统用户的密码写在这里。比如你的系统用户easylife密码是000000,为了安全你可以让rsync中的easylife为keer。这和samba的用户认证的密码原理是差不多的。设定rsyncd.motd 文件; 它是定义rysnc服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 linuxsir.org ftp 。 当然这在全局定义变量时,并不是必须的,你可以

11、用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:+Welcome to use the rsync services! 2002-2009+三、rsyncd.conf服务器的配置详解A、全局定义在rsync 服务器中,全局定义有几个比较关健的,根据我们前面所给的配置文件 rsyncd.conf 文件;pid file = /var/run/rsyncd.pid 注:告诉进程写到 /var/run/rsyncd.pid 文件中;port = 873 注:指定运行端口,默认是873,您可以自己指定;address = 192.168.1.171 注:指定服务器IP地址uid

12、= nobodygid = nobdoy 注:服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。 如果用nobody 用户和用户组,可能遇到权限问题,有些文件从服务器上拉不下来。所以我就偷懒,为了方便,用了root 。不过您可以在定义要同步的目录时定义的模块中指定用户来解决权限的问题。use chroot = yes 注:用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外。也就是说,你在 rsync服务器上,如果有符号链接,你在备份服务器

13、上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同步符号链接的内容;这个需要自己来尝 试read only = yes注:read only 是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项,自己尝试是做什么用的吧;#limit access to private LANshosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0注:在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开;max connection

14、s = 5注:客户端最多连接数motd file = /etc/rsyncd/rsyncd.motd注:motd file 是定义服务器信息的,要自己写 rsyncd.motd 文件内容。当用户登录时会看到这个信息。比如我写的是:+Welcome to use the rsync services! 2002-2009+log file = /var/log/rsync.log注:rsync 服务器的日志;transfer logging = yes注:这是传输文件的日志log format = %t %a %m %f %bsyslog facility = local3timeout = 3

15、00B、模块定义 模块定义什么呢?主要是定义服务器哪个目录要被同步。每个模块都要以name形式。这个名字就是在rsync 客户端看到的名字,其实有点象Samba服务器提供的共享名。而服务器真正同步的数据是通过path 指定的。我们可以根据自己的需要,来指定多个模块。每个模块要指定认证用户,密码文件、但排除并不是必须的下面是前面配置文件模块的例子:rhel4home #模块它为我们提供了一个链接的名字,在本模块中链接到了/home目录;要用name 形式path = /home #指定文件目录所在位置,这是必须指定的auth users = root #认证用户是root ,是必须在服务器上存在

16、的用户list=yes #list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;ignore errors #忽略IO错误secrets file = /etc/rsyncd.secrets #密码存在哪个文件comment = linuxsir home data #注释可以自己定义exclude = beinan/ samba/注:exclude是排除的意思,也就是说,要把/home目录下的easylife和samba排除在外; e

17、asylife/和samba/目录之间有空格分开rhel4optpath = /optlist=nocomment = optdirauth users = beinansecrets file = /etc/rsyncd/rsyncd.secretsignore errors四、启动rsync服务器及防火墙的设置启动rsync服务器相当简单,有以下几种方法A、-daemon参数方式,是让rsync以服务器模式运行#/usr/bin/rsync -daemon -config=/etc/rsyncd/rsyncd.conf #-config用于指定rsyncd.conf的位置,如果在/etc下

18、可以不写B、xinetd方式修改services加入如下内容# nano -w /etc/servicesrsync873/tcp# rsyncrsync873/udp# rsync这一步一般可以不做,通常都有这两行(我的RHEL4和GENTOO默认都有)。修改的目的是让系统知道873端口对应的服务名为rsync。如没有的话就自行加入。设定 /etc/xinetd.d/rsync, 简单例子如下:# default: off# description: The rsync server is a good addition to am ftp server, as it # allows cr

19、c checksumming etc.service rsync disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = -daemon log_on_failure += USERID上述, 主要是要打开rsync這個daemon, 一旦有rsync client要连接時, xinetd会把它转介給 rsyncd(port 873)。然后service xinetd restart, 使上述设定生效.rsync服务器和防火墙Linux 防火墙是用iptables

20、,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。#iptables -A INPUT -p tcp -m state -state NEW -m tcp -dport 873 -j ACCEPT#iptables -L 查看一下防火墙是不是打开了 873端口如果你不太懂防火墙的配置,可以先service iptables stop 将防火墙关掉。当然在生产环境这是很危险的,做实验才可以这么做哟!五、通过rsync客户端来同步数据A、语法详解在配置完rsync服务器后,就可以从客户端发出rsync命令来实现各种同步的操作。rsync有很多功能选项,下面就对

21、介绍一下常用的选项:rsync的命令格式可以为:1. rsync OPTION. SRC SRC. USERHOST:DEST2. rsync OPTION. USERHOST:SRC DEST3. rsync OPTION. SRC SRC. DEST4. rsync OPTION. USERHOST:SRC DEST5. rsync OPTION. SRC SRC. USERHOST:DEST6. rsync OPTION. rsync:/USERHOST:PORT/SRC DESTrsync有六种不同的工作模式:1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号:分隔符时就启

22、动这种工作模式。2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号:分隔符时启动该模式。3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号:分隔符时启动该模式。4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含:分隔符时启动该模式。5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含:分隔符时启动该模式。6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。-a 以archive模式操作、复制目

23、录、符号连接 相当于-rlptgoDrsync中的参数-r 是递归-l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;-z 传输时压缩;-P 传输进度;-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;-e ssh的参数建立起加密的连接。-u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时-progress是指显示出详细的进度情况-delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致-password-file=/passwo

24、rd/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。B、一些实例B1、列出rsync 服务器上的所提供的同步内容;首先:我们看看rsync服务器上提供了哪些可用的数据源# rsync -list-onlyroot192.168.145.5:+Welcome to use the rsync services! 2002-2009+rhel4home This is RHEL 4 data 注:前面是rsync所提供的数据源,也就是我们在rsyncd.conf中所写的rhel4home模块。而“Thi

25、s is RHEL 4 data”是由rhel4home模块中的 comment = This is RHEL 4 data 提供的;为什么没有把rhel4opt数据源列出来呢?因为我们在rhel4opt中已经把list=no了。$ rsync -list-onlyroot192.168.145.5:rhel4home+Welcome to use the rsync services! 2002-2009+Password:drwxr-xr-x 4096 2009/03/15 21:33:13 .-rw-r-r- 1018 2009/03/02 02:33:41 ks.cfg-rwxr-xr

26、-x 21288 2009/03/15 21:33:13 wgetpastedrwxrwxr-x 4096 2008/10/28 21:04:05 cvsrootdrwx- 4096 2008/11/30 16:30:58 easylifedrwsr-sr-x 4096 2008/09/20 22:18:05 giddirdrwx- 4096 2008/09/29 14:18:46 quser1drwx- 4096 2008/09/27 14:38:12 quser2drwx- 4096 2008/11/14 06:10:19 testdrwx- 4096 2008/09/22 16:50:3

27、7 vbird1drwx- 4096 2008/09/19 15:28:45 vbird2后面的rootip中,root是指定密码文件中的用户名,之后的:rhel4home这是rhel4home模块名B2、rsync客户端同步数据;#rsync -avzProot192.168.145.5:rhel4homerhel4homePassword: 这里要输入root的密码,是服务器端rsyncd.secrets提供的。在前面的例子中我们用的是mike,输入的密码并不回显,输好就回车。 注: 这个命令的意思就是说,用root用户登录到服务器上,把rhel4home数据,同步到本地当前目录rhel4home上。当然本地的目录是可以你自己 定义的。如果当你在客户端上当前操作的目录下没有rhel4home这个目录时,系统会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1