使用RSYNC从LINUX到LINUX或到WINDOWS对网站进行镜像备份.doc_第1页
使用RSYNC从LINUX到LINUX或到WINDOWS对网站进行镜像备份.doc_第2页
使用RSYNC从LINUX到LINUX或到WINDOWS对网站进行镜像备份.doc_第3页
使用RSYNC从LINUX到LINUX或到WINDOWS对网站进行镜像备份.doc_第4页
使用RSYNC从LINUX到LINUX或到WINDOWS对网站进行镜像备份.doc_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用使用 RSYNC 从从 LINUX 到到 LINUX 或到或到 WINDOWS 对网站进行镜像备对网站进行镜像备 份份 使用 rsync 从 linux 到 linux 或到 windows 对网站进行镜像备份 BY vitter Vitter Our Web My Web My Blog rsync 是 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 备份以什么身份进行 用户 ID gid nobody 备份以什么身份进行 组 ID 注意这个用户 ID 和组 ID 如果要方便的话 可以设置成 root 这样 rsync 几乎就可 以读取任何文件和目录了 但是也带来安全隐患 建议设置成只能读取你要备 份的目录和文件即可 use chroot no max connections 0 最大连接数没有限制 pid file var log rsync rsyncd pid lock file var log rsync rsync lock log file var log rsync rsyncd log attachment 指定认证的备份模块名 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 认证文件名 用来存放密码 98htdocs uid nobody gid nobody path www htdocs ignore errors read only false list false hosts allow 210 51 0 98 hosts deny 202 108 211 38 hosts deny 0 0 0 0 0 0 0 0 auth users msyn secrets file etc rsyncd scrt 98html uid ejbftp gid nobody path www htdocs pub html ignore errors read only false list false hosts allow 210 51 0 98 hosts deny 0 0 0 0 0 0 0 0 auth users 98syn secrets file etc rsync98 scrt 这里分别定义了 attachment 98htdocs 98html 三个模块 分别对应于三个需要备份的目树 三个模 块授权的备份用户分别为 msyn msyn 98syn 用户信息保存在文件 etc rsyncd scrt 和 etc rsync98 scrt 中 其内容如下 root www etc cat etc rsyncd scrt msyn xxxxxxxxx 并且该文件只能是 root 用户可读写的 注意 出于安全目的 这个文件的属性必需是只有属主可读 否 则 rsync 将拒绝运行 我们可以设置它的属性为 600 root www etc chmod 600 etc rsyncd scrt root www etc mkdir var log rsync 这些文件配置完毕以后 就需要在主服务器上启动 rsyncd 服务 root www etc usr local bin rsync daemon 执行完毕上面的命令后 rsync 即可启动 rsync 默认服务端口为 873 服务器在该端口接收客户的匿名 或者认证方式的备份请求 二 配置客户端二 配置客户端 1 linux 下执行 rsync 客户端命令 下一步就要运行 rsync 客户端的启动命令了 backup backup usr bin rsync vlzrtogp progress delete 98syn x 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 是指如果服务器端删除了这一文件 那么客户端也相应把文件删除 保持真正的一致 98syn x 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 98syn xx xx xx xx 98html bak 应该可以看到 password 要求输入密码的提示 正确输入密码后就应该看到开始备份了 当然 也有可能出现类似下面的错误信息 引起这种错误有几种可能性 一是你没有输入正确的用户名或密码 二是你的服务器端存储密码的文件没 有正确的权限 也就是你的密码文件不是类似这样子的权限 rw 1 root root 在备份完成之后 我们可以看到类似下图所示的状态 可以采用从文件读取密码的方式 rsync vzrtopg progress delete 98syn xx 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 当然可以 你可以使用如 rsync other options backupdir backup 2000 2 13 这样的命令来实现 这样如果源文件 path to some file c 改变了 那么旧的文件就会被移到 backup 2000 2 13 path to some file c 这里这个目录需要自己 手工建立起来 q 我需要在防火墙上开放哪些端口以适应 rsync a 视情况而定 rsync 可以直接通过 873 端口的 tcp 连接传文件 也可以通过 22 端口的 ssh 来进行文件传递 但你也可 以通过下列命令改变它的端口 rsync port 8730 otherhost 或者 rsync e ssh p 2002 otherhost q 我如何通过 rsync 只复制目录结构 忽略掉文件呢 a rsync av include exclude source dir dest dir q 为什么我总会出现 read only file system 的错误呢 a 看看是否忘了设 read only no 了 q 为什么我会出现 error invalid gid 的错误呢 a rsync 使用时默认是用 uid nobody gid nobody 来运行的 如果你的系统不存在 nobody 组的话 就 会出现这样的错误 可以试试 gid nogroup 或者其它 q 绑定端口 873 失败是怎么回事 a 如果你不是以 root 权限运行这一守护进程的话 因为 1024 端口以下是特权端口 会出现这样的错误 你可以用 port 参数来改变 q 为什么我认证失败 a 从你的命令行看来 你用的是 bash rsync a 144 16 251 213 test test password error auth failed on module test i dont understand this can somebody explain as to how to acomplish this all suggestions are welcome 应该是没有以你的用户名登陆导致的问题 试试 rsync a max 144 16 251 213 test test 二 一些可借鉴的脚本 这里这些脚本都是 rsync 网站上的例子 1 每隔七天将数据往中心服务器做增量备份 bin sh this script does personal backups to a rsync backup server you will end up with a 7 day rotating incremental backup the incrementals will go into subdirectories named after the day of the week and the current full backup goes into a directory called current tridge directory to backup bdir home user excludes file this contains a wildcard pattern per line of files to exclude excludes home cron excludes the name of the backup machine bserver owl your password on the backup server export rsync password xxxxxx backupdir date a opts force ignore errors delete excluded exclude from excludes delete backup backup dir backupdir a export path path bin usr bin usr local bin the following line clears the last weeks incremental directory d home emptydir mkdir home emptydir rsync delete a home emptydir bserver user backupdir rmdir home emptydir now the actual transfer rsync opts bdir bserver user current 2 备份至一个空闲的硬盘 bin sh export path usr local bin usr bin bin list root

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论