字号:    

邮件系统双机冷备

 

本文介绍了邮件服务器利用rsync实现冷备份,达到数据安全的方法,还有windows下通过xmanager来远程桌面控制Linux的方法,并具体介绍了xdm和xmanager的配置和使用方法,希望给大家带来一定的帮助

最近单位里邮件服务器更换,想把旧的联想服务器做为邮件系统冷备份,启用新的hp服务器做为邮件主服务器。经过一段时间的实际工作,安装完毕,现整理如下。操作系统是redhat el3版,如果不知道自己的版本号,可在图形界面下新开一个终端,在命令行输入 cat /proc/version,查看版本号。邮件服务器对硬件要求并不是很高一般服务器都可以达到,具体标准如下:

用户量     产品类型       CPU最小要求       内存       硬盘

5000以下  亿邮邮件网关      PIII 1GHz          512M     18G

1万~5万  亿邮邮件网关     Xeon 2.0Gx2         1G       72G

5万以上   亿邮邮件网关      Xeon 2.0Gx2        2G   72Gx3(RAID 5)

              

单位的服务器有两块73G硬盘,在安装系统之前做了RAID0+1,所以只可用一块硬盘,安装Redhat EL3系统,在分区时,考虑到应用软件和操作系统应当分开,以备操作系统损坏后,应用软件和重要数据不会丢失,具体分配如下:

/分区:  存放系统命令和用户数据等(建议大小:1G) 实际分配7G

/home分区:存放Linux的应用程序(建议大小:3G )  实际分配60G

SWAP分区: 用于实现虚拟内存(建议大小:256M)   实际分配1280M

在防火墙上开ssh2的22端口,nat转换到旧服务器上,联系厂家远程安装,厂家通过22端口登录到旧服,把旧服的数据和应用软件,通过内网的新服22端口,拷贝安装到新邮件服务器。接下来,就是最关键的部分,如何实现两台邮件服务器的冷备份。

 

邮件服务器利用rsync实现冷备份

 

 

先说要求:新服做为主服务器,旧服做为备份服务器。每天上班前7点钟备份一次。故障发生时,新服不可用,把防火墙nat转换到旧服,以保证正常使用。

  具体实施:采用rsync

一、特性简介

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了     ——remote sync。它的特性如下:

1、可以镜像保存整个目录树和文件系统。

2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。

3、无须特殊权限即可安装。

4、优化的流程,文件传输效率高。

5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

6、支持匿名传输。

二、使用方法

rsync的使用方法很简单,我就举自己使用的例子来说明吧。

1、系统环境

rsync支持大多数的类unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。系统环境为:

server: FreeBSD 4.3    ip: 192.168.168.52

client: Linux AS 3      ip: 192.168.168.137

rsync 版本 2.4.6(可以从http://rsync.samba.org/rsync/获得最新版本)

2、配置server端的/etc/rsyncd.conf文件

bash-2.03# cat /etc/rsyncd.conf

uid = nobody                              用户ID号

gid = nobody                              组ID号

use chroot = no                            不使用chroot

max connections = 20                       最大连接数为20

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log                 日志记录文件

[eyou]                                   这里是认证的模块名,在client端需要指定

path = /home/inburst/python/                 需要做镜像的目录

comment = BACKUP CLIENT IS SOLARIS    一段说明文件

ignore errors                              可以忽略一些无关的IO错误

read only = yes                            只读

list = no                                  不允许列文件

auth users = eyouuser                     认证的用户名,如果没有这行,则表明是匿名

secrets file = /etc/eyou.pas                 认证文件名存放密码

[web]

path = /usr/local/apache/htdocs/

comment = inburst.org web server

3、在server端生成一个密码文件/etc/eyou.pas

bash-2.03# cat /etc/eyou.pas

eyou:password

出于安全目的,文件的属性必需是只有属主可读。

4、在server端将rsync以守护进程形式启动

bash-2.03# rsync --daemon

如果要在启动时把服务起来,有几种不同的方法,比如:

  a、加入inetd.conf

    编辑/etc/services,加入rsync   873/tcp,指定rsync的服务端口是873

    编加/etc/inetd.conf,加入rsync  stream  tcp   nowait  root  /bin/rsync rsync --daemon

  b、加入rc.local

    在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync --daemon加载进去。

5、从client端进行测试

下面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

-v, --verbose 详细模式输出

-q, --quiet 精简输出模式

-c, --checksum 打开校验开关,强制对文件传输进行校验

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r, --recursive 对子目录以递归模式处理

-R, --relative 使用相对路径信息

后面的eyouuser@ip中,eyouuser是指定密码文件中的用户名,之后的::eyou这一eyou是模块名,也就是在/etc/rsyncd.conf中自定义的名称。最后的/data是备份到本地的目录名。在这里面,还可以用-e ssh的参数建立起加密的连接。可以用--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

bash-2.03# rsync -vzrtopg --progress --delete eyouuser@192.168.168.52::eyou /data/eyou

Password:

receiving file list ... done

./

1

785 (100%)

1.py

4086 (100%)

2.py

10680 (100%)

a

0 (100%)

ip

3956 (100%)

./

wrote 190 bytes  read 5499 bytes  758.53 bytes/sec

total size is 19507  speedup is 3.43

在上面的例子中是以交互式地输入验证密码, 现在我们还可以用-e ssh的参数建立起加密的连接。可以用--password-file=/etc/eyou.pas来指定密码文件

首先我们要建立密码文件,/etc/eyou.pas

[root@mail root]# more /etc/eyou.pas

password

出于安全目的,文件的属性必需是只有属主可读。

bash-2.03# rsync -vzrtopgl --progress --delete eyouuser@192.168.168.52::eyou /data/eyou --password-file=/etc/eyou.pas

我们还可以将迁移放在后台去运行并把产生的日志输入了文件, >/var/log/a.log;整条完整的命令如下.

nohup rsync –vzrtopgl –progress –delete eyouuser@192.168.168.52::eyou /data/eyou –password-file=/etc/eyou.pas >>/var/log/eyou.log &

6、创建更新脚本

如果有比较复杂的工作,利用一些常见的脚本语言可以有帮助。比如:

bash-2.03# cat /data/rsync.sh

#!/bin/sh

DATE=`date +%w`

nohup rsync -vzrtopgl --progress --delete inburst@192.168.168.52::inburst /home/quack/backup/$DATE --password-file=/etc/rsync.pas >>/var/log/eyou$DATE.log &

7、修改/etc/crontab做好定时迁移.

比如:

bash-2.03# crontab –e

#5 1,13 * * * /var/emdg/sbin/keepup2date -c /var/emdg/etc/kavconfig.conf

#5 0 15,30 * * /var/emdg/sbin/virusupdate

#0 3 * * * /var/emdg/sbin/checkave.sh

#0 3 * * * /var/emdg/sbin/up/update_rules.sh

#0 8,9,10,11,12,13,14,15,16,17,18 * * * /var/emdg/sbin/notify_mail.org

0 1 * * * /data/rsync.sh

加入0 1 * * * /data/rsync.sh; 意思为每天凌晨1点开始同步数据.

Crontab的基本格式如下.

基本格式 :

*  *  *  *  *  command

分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

因为邮件服务器是redhat,而操作员的电脑系统是windows2003,所以为了方便操作,我们还要从windows2003远程管理redhat,具体实现如下:

redhat服务器端,更改以下配置,

  第一步,我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句:# * #any  host  can  get  a  login  window

去掉最前面的#号,成为

第二步,我们修改/etc/X11/gdm/gdm.conf文件,找到下面的语句:

  将其中的Enable=false 改为Enable=true 或 Enable=1。

  同时我们要确保存在下面的语句,因为177端口是我们要配置的xdmcp服务的监听端口,我们在后面配置xmanager将看到。

   第三步,我们要修改/etc/inittab文件,将下面的语句

  改为如下,如果原来就是id:5:initdefault:就不用更改。

  同时,找到如下图文字所在的地方,

  将它修改为x:5:respawn:/usr/bin/gdm,即如下图所示,

   第四步,我们修改/etc/X11/xdm/xdm-config的最后一行,在displayManager.requestPort:0前面加上一个!号,结果如下

  第五步,我们修改确保/etc/X11/xdm/Xservers的属性为444,/etc/X11/xdm/Xsetup_0的属性为755,在RedHat 9.0中,我们可以看到这两个文件默认的属性就是444和775,因此不用修改。

 

   最后,如果我们的Linux机器配置有防火墙,为防止防火墙将通过177端口(即xdmcp服务)的数据过虑,我们必须加上如下的规则:

   iptables  -A  INPUT  -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

   接下来下载xmanager2.0,它是一个简单易用的高性能的运行在Windows平台上的 X Server 软件。安装后,点击Xbrowser ,在address下输入邮件服务器的内网ip地址,就可以实现过程桌面,输入你的root密码,就可以软件自在的操作啦,很爽吧。

   

?次阅读
 2008-03-24 11:17