资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
使用 RSYNC 从 LINUX 到 LINUX 或到 WINDOWS 对网站进行镜像备份使用 rsync 从 linux 到 linux 或到 windows 对网站进行镜像备份BY:vitter (Vittersafechina.net)Our Web:http:/www.safechina.netMy Web:http:/www.vfocus.netMy Blog:http:/blog.vfocus.netrsync 是 Linux 系统下的数据镜像备份工具,从软件的命名上就可以看出来了remote sync。rsync 支持大多数的类 Unix 系统,无论是 Linux、Solaris 还是 BSD 上都经过了良好的测试。rsync 的最新版本可以从 http:/rsync.samba.org/rsync/获得。它的特性如下:1、可以镜像保存整个目录树和文件系统。2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。3、无须特殊权限即可安装。4、优化的流程,文件传输效率高。5、可以使用 rcp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接。本文介绍了如何使用 rsync 服务从 Linux 到 Windows 和 linux 进行远程备份一、配置服务器端软件下载rysnc 的主页地址为:http:/rsync.samba.org/ ,可以从这里下载 rysn 的安装软件。编译安装rsync 的编译安装非常简单,只需要以下简单的几步(在两台服务器中都要安装):$ tar xvf rsync-2.6.5.tgz$ cd rsync-2.6.5$ ./configure$ make$ make install但是需要注意的是必须在主服务器和同步服务器上都安装 rsync,其中主服务器上是以服务器模式运行rsync,而同步上则以客户端方式运行 rsync。这样在主服务器上运行 rsyn 守护进程,在同步上用 crond定时运行客户程序来同步主服务器上需要同步的内容。配置 rsync 服务器端对于 rsync 服务器来说,最重要和复杂的就是它的配置了。rsync 服务器的配置文件为/etc/rsyncd.conf,其控制认证、访问、日志记录等等。该文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为 name=value 的参数定义。每个模块其实就对应需要备份的一个目录树,比方说在我们的实例环境中,有三个目录树需要备份:/www/和/mirror/file0/和/mirror/file1/目录,那么就需要在配置文件中定义三个模块,分别对应三个目录树。配置文件是行为单位的,也就是每个新行都表示一个新的注释、模块定义或者参数赋值。例如,在 168 上创建 rsyncd 的配置文件/etc/rsyncd.conf,内容如下:uid = nobody # 备份以什么身份进行,用户 IDgid = nobody # 备份以什么身份进行,组 ID#注意这个用户 ID 和组 ID,如果要方便的话,可以设置成 root,这样 rsync 几乎就可#以读取任何文件和目录了,但是也带来安全隐患。建议设置成只能读取你要备#份的目录和文件即可。#use chroot = nomax connections = 0 # 最大连接数没有限制pid file = /var/log/rsync/rsyncd.pidlock file = /var/log/rsync/rsync.locklog file = /var/log/rsync/rsyncd.logattachment # 指定认证的备份模块名path = /www/htdocs/pub/attachment/ # 需要备份的目录comment = BACKUP attachment # 注释ignore errors # 忽略一些无关的 IO 错误read only = false # 设置为非只读list = false # 不允许列文件#hosts allow = 210.51.0.80 #允许连接服务器的主机 IP 地址#hosts deny = 0.0.0.0/0.0.0.0 #禁止连接服务器的主机 IP 地址auth users = msyn # 认证的用户名,如果没有这行,则表明是匿名secrets file = /etc/rsyncd.scrt # 认证文件名,用来存放密码98htdocsuid = nobodygid = nobodypath = /www/htdocs/#ignore errorsread only = falselist = false#hosts allow = 210.51.0.98#hosts deny = 202.108.211.38#hosts deny = 0.0.0.0/0.0.0.0auth users = msynsecrets file = /etc/rsyncd.scrt98htmluid = ejbftpgid = nobodypath = /www/htdocs/pub/html/#ignore errorsread only = falselist = false#hosts allow = 210.51.0.98#hosts deny = 0.0.0.0/0.0.0.0auth users = 98synsecrets file = /etc/rsync98.scrt这里分别定义了attachment、98htdocs、98html三个模块,分别对应于三个需要备份的目树。三个模块授权的备份用户分别为 msyn,msyn,98syn,用户信息保存在文件 /etc/rsyncd.scrt 和/etc/rsync98.scrt中,其内容如下:rootwww /etc# cat /etc/rsyncd.scrt msyn:xxxxxxxxx并且该文件只能是 root 用户可读写的,注意,出于安全目的,这个文件的属性必需是只有属主可读,否则 rsync 将拒绝运行。我们可以设置它的属性为 600:rootwww /etc# chmod 600 /etc/rsyncd.scrt rootwww /etc# mkdir /var/log/rsync这些文件配置完毕以后,就需要在主服务器上启动 rsyncd 服务:rootwww /etc# /usr/local/bin/rsync -daemon执行完毕上面的命令后,rsync 即可启动。rsync 默认服务端口为 873,服务器在该端口接收客户的匿名或者认证方式的备份请求。二、配置客户端1、linux 下执行 rsync 客户端命令下一步就要运行 rsync 客户端的启动命令了:backupbackup / /usr/bin/rsync -vlzrtogp -progress -delete 98synx.x.x.168:98html /usr/local/apache/htdocs/pub/html/ -password-file=/etc/rsync98.scrt上面这个命令行中-vzrtopg 里的 v 是代表 verbose(详细) ,z 是代表 zip(压缩),r 是代表 recursive(递归),topg 都是保持文件原有属性如属主、时间的参数。-progress 是指显示出详细的进度情况,-delete 是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。98synx.x.x.168:98html 是表示该命令是对服务器 x.x.x.168 中的 98html 模块进行备份,其中 98syn 表示使用 98syn 用户来对该模块进行备份。 -password-file=/etc/rsync98.scrt 来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有执行这个命令的当前用户可读,本例中是 98syn 用户。 这里将备份的内容存放在备份机的/usr/local/apache/htdocs/pub/html/目录下。这样,rsync 同步服务就搭建好了,最后我们可以将在客户端执行的命令通过 crontab 定时执行来实现自动备份,或者写一些脚本,这样 rsync 同步服务的搭建就更加完美了。2、Windows 配置客户端为了在 Windows 环境使用 rsync 工具,我们需要去下载 cwRsync 工具,这是一个 rsync for windows 的版本。下载安装完成之后的目录结构类似下图所示:现在我们可以在 Windows 环境下运行 rsync 工具了,举例使用下面的命令连接服务器并开始备份目录和文件:rsync -vzrtopg -progress -delete 98synxx.xx.xx.xx:98html .bak应该可以看到:password:要求输入密码的提示,正确输入密码后就应该看到开始备份了。当然,也有可能出现类似下面的错误信息:引起这种错误有几种可能性,一是你没有输入正确的用户名或密码,二是你的服务器端存储密码的文件没有正确的权限,也就是你的密码文件不是类似这样子的权限:-rw- 1 root root在备份完成之后,我们可以看到类似下图所示的状态:可以采用从文件读取密码的方式:rsync -vzrtopg -progress -delete 98synxx.xx.xx.xx:98html .bak -password-file=.rsync98.scrt可以写成批处理,做到 windows 计划任务里面去,可以定时执行来实现自动备份。你也可以在这里下载 cwRsync-1.2.8 版:cwRsync_1.2.8_Installer.exe注:本文引用地址:http:/WWW.VFOCUS.NET/BLOG/mt-tb.cgi/6。请尊重原创,如有转载请注明出处。Posted by vitter at July 6, 2005 01:48 PM | 引用 评论一、faq q:如何通过 ssh 进行 rsync,而且无须输入密码? a:可以通过以下几个步骤 1. 通过 ssh-keygen 在 server a 上建立 ssh keys,不要指定密码,你会在/.ssh 下看到 identity 和identity.pub 文件 2. 在 server b 上的 home 目录建立子目录 .ssh 3. 将 a 的 identity.pub 拷贝到 server b 上 4. 将 identity.pub 加到user b/.ssh/authorized_keys 5. 于是 server a 上的 a 用户,可通过下面命令以用户 b ssh 到 server b 上了 e.g. ssh -l userb serverb 这样就使 server a 上的用户 a 就可以 ssh 以用户 b 的身份无需密码登陆到 server b 上了。 q:如何通过在不危害安全的情况下通过防火墙使用 rsync? a:解答如下: 这通常有两种情况,一种是服务器在防火墙内,一种是服务器在防火墙外。无论哪种情况,通常还是使用ssh,这时最好新建一个备份用户,并且配置 sshd 仅允许这个用户通过 rsa 认证方式进入。 如果服务器在防火墙内,则最好限定客户端的 ip 地址,拒绝其它所有连接。如果客户机在防火墙内,则可以简单允许防火墙打开 tcp 端口 22 的 ssh 外发连接就 ok 了。 q:我能将更改过或者删除的文件也备份上来吗? a:当然可以: 你可以使用如:rs
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号