搭建远程容灾备份系统

操作系统:centos 5.8

A系统IP地址:192.168.0.189

B系统IP地址:192.168.0.196

1:在A,B上安装rysnc:

[root@varnish ~]# tar zxvf rsync-3.0.9.tar.gz

[root@varnish ~]# cd rsync-3.0.9
[root@varnish rsync-3.0.9]# ./configure && make && make install

2:在A系统上配置rsync:

rsync的配置文件为/etc/rysncd.conf,在安装完rysnc时,默认是没有这个配置文件的,手动建立一个即可。rsyncd.conf文件有一个或多个模块结构构成,包括全局参数和模块参数。一个模块定义从方括弧中的模块名开始,直到下一个模块的定义开始。配置内容如下:

[root@varnish ~]# vi /etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log


uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log


[51auto]
path = /webdata
comment = 51auto file
ignore errors
read only = no
write only = no
hosts allow = *
hosts deny = 192.168.0.199
list = false
uid = root
gid = root
auth users = backup
secrets file = /etc/server.passwd

#########################################################

其中:/etc/server.passwd 中的内容如下:##需要手动建立

[root@varnish ~]# more /etc/server.passwd
backup:51auto666

[root@varnish ~]# chmod 600 /etc/server.passwd

————————————————————————————————

上面每个选项的含义:

uid:此选项指定当该模块传输文件时守护进程应该具有的用户ID,默认值是nobody。

gid:同上,具有的用户组ID

max connection ,此选向指定模块的最大并发连接数,以保护服务器。超过限制的连接请求将被暂时限制,默认值是0,即没有限制。

strict modes ,此选项指定是否检查口令文件的权限,yes为检查口令文件权限,反之为no。如果设置为yes,密码文件的权限必须为root用户权限。

pid  file ,指定rysnc的守护进程对应发的pid文件路径。

lock file ,指定支持max connection 的锁文件,默认值是/var/run/rsyncd.lock

log file ,指定rsync的日志输出文件路径。

[51auto],表示定义一个模块的开始,51auto就是对应的模块名。

path,指定需要备份的文件或目录,是必须设置的项。

ignore errors ,表示可以忽略一些无关的I/O 错误。

read only ,设置为no表示客户端可以上传文件,设置为yes 表示只读。

write only ,设置为no表示客户端可以下载文件,设置为yes 表示不能下载。

hosts allow ,设置可以连接rsync 服务器的主机,* 表示允许连接任何主机。

hosts deny ,设置禁止连接的主机IP。

list ,此选项用于设置当客户端请求可以使用的模块列表时,该模块是否被列出,默认值是true,如果需要建立隐藏的模块,可以设置为false。

vauth users ,此选项用来定义可以该模块的用户名。多个用户以空格或逗号分隔开,需要注意的是这里的用户和linux系统的用户没有任何关系。这里指定的用户是backup

secrets file ,此选项用于指定一个包含“用户名:密码”格式的文件,用户名就是auth users 选项定义的用户,密码可以随便指定。只要和客户端的scrects file对应起来即可

3:在A系统上启动rsync守护进程:

[root@varnish ~]# /usr/local/bin/rsync --daemon
[root@varnish ~]# ps -ef|grep rsync
root     28544     1  0 22:10 ?        00:00:00 /usr/local/bin/rsync --daemon

4:在B系统上配置rsync:

在备份机上不用做任何的设置,只需执行rsync同步的操作即可。为了在同步过程中不用输入密码,需要在B系统上创建一个secrets file,此文件的内容为A系统rsyncd.conf文件中 “auth users”选项指定的用户的密码。而这个文件的名称及路径可以随意指定。只要在执行rsync同步时指定即可。

执行同步操作的具体指令如下:

[root@varnish-web1 ~]# /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "*access*" --exclude "*debug*" backup@192.168.0.189::51auto /51auto.net --password-file=/etc/server.passwd

##其中/51auto.net 这个目录不用手动创建,当执行该命令时会自动创建。

其中,B服务器(客户端系统)中/etc/server.passwd的内容如下:

[root@varnish-web1 ~]# more /etc/server.passwd
51auto666
[root@varnish-web1 ~]# chmod 600 /etc/server.passwd

这条指令的含义具体如下:

在“-vzrtopg”中,v是“--verbose”,即详细输出模式;z表示“--compress”,即在传输时对备份的文件进行压缩处理;r,表示“--recursive”,也就是对子目录以递归的模式处理;t即“--times”,用来保持文件时间信息;o即“--owner”,用来保持文件属主信息;p即“--perms”,用来保持文件的权限;g即表示“--group”,用来保持文件的属组信息。

--delete ,指定以rsync服务器端为基准进行数据镜像同步,也就是要保持rsync服务器端目录与客户端目录完全一致。在这里以A服务器为基准进行同步。

--progress ,用于显示数据镜像同步的过程。

--exclude ,用于排除不需要传输的文件的类型。

backup@192.168.0.189::51auto ,表示对服务器189的51auto模块进行备份。也就是指定备份的模块。backup指定用“backup”这个用户对该模块进行备份。

/51auto.net ,用于指定备份文件在客户端机器上的存放路径。

--password-file,用于指定客户机上存放密码文件的位置,这样在客户端执行同步命令时就无需输入交互密码。注意这个文件的名称和位置可以随意指定,但在客户机上要存在此文件。

##如果配置没有错误的话,接下来rsync自动将服务器端的(即A系统)需要备份的数据同步到客户端。rsync指令在客户端执行完数据同步后,将自动停止,以后服务器端目录下有新的数据增加,客户端不会自动同步的。此时还需再次执行rsync的命令。

5:设定备份策略:

我们知道rsync方式的数据备份需要触发同步指令才能完成,触发同步指令的方式有很多种。例如:可以讲同步指令放入客户端的系统的crontab守护进程,设定同步的时间,然后让linux系统触发同步指令,自动完成数据备份。

假如每5分钟同步一次,在B服务器写入crontab -e中。内容如下:


5 * * * * /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "*access*" --exclude "*debug*" backup@192.168.0.189::51auto /51auto.net --password-file=/etc/server.passwd

###############################################

OK Done!!!