Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103543422
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-10 22:17:36

作者:方刚  

 

---- SCO Unix是专门为Intel平台设计的Unix操作系统,比较适合中小企业的应用。它有很多优秀的功能,可以很方便地将SCO Unix服务器配置成一台高性能的电子邮件服务器,或一台文件传输服务器、域名服务器、Web服务器等,或者同时提供上述全部功能。本文以5.0以上版本的SCO Unix为例,介绍如何将SCO Unix配置成一台高性能的运行于局域网或广域网上的邮件服务器,然后介绍其维护方面的内容。 

一、电子邮件服务器的建立 

用vi打开/etc/services文件,这个文件定义了SCO Unix系统提供的TCP/IP网络服务的端口号、服务名称和协议种类。比如在此文件中可以发现所熟知的TELNET和FTP所对应的端口号分别是23和21。先查找“smtp”,它对应的端口号应该是25。检查行前有无注释符“#”,如果有则去掉它。再查找“pop3”,它对应的端口号是110,同样检查行前有无注释符“#”。注意,含“pop3”的行可能不止一行,不要有遗漏。若使用最新版的SCO Unix可以不做这一步,因为系统安装时已启用简单邮件传输协议(Simple Mail Transport Protocol,SMPT)和POP3协议。但是,为了确保万无一失,检查一下并不多余。 
打开/etc/inetd.conf文件,这是一个SCO Unix服务守护进程的配置文件。SCO Unix为了提高系统性能,对各种网络服务采用的是“守护进程”的方法:每次侦测到一个特定的服务请求时,系统才调用该服务的守护进程。若这个文件中没有包含这种服务的守护进程,则系统会将此请求丢弃。要做的是检查一下文件尾部含SMPT和POP3的2行是否被注释,若是则去掉注释符。这一步也可不做,因为这个文件是系统安装TCP/IP时自动生成的,这2行一般不会被注释。注意,一般不要修改这个文件,除非对SCO Unix和网络协议有足够的了解。 
在主控台上的X-Window图形界面,以“root”身份登录,依次打开“System Administration”*“Mail”*“MMDF Configuration”,进入邮件服务器的主配置界面。在“Configuring MMDF to use this host name”提示信息下的输入栏中,填入指定的MMDF主机名,如mymail.com。在界面中间有2个按钮: “TCP/IP”和“uucp”,按钮右边是当前的配置状态提示,一般情况下,显示“unconfigured”。选中准备启用的邮件服务协议模式,一般选“TCP/IP”,选中后系统开始对MMDF进行配置,稍等片刻,“TCP/IP”右边的提示就会变成“Configured”,界面上的其他选项暂先不要配置,按界面左下方的“OK”按钮退出。 
建几个SCO Unix的普通用户,别忘了给每个用户分配一个口令。用户的属组、所用的sh无特殊要求。注意,要求用户的属组必须是mail组,若已经建好用户,此步可省。 
---- 完成以上步骤之后,重启SCO Unix,所建立的邮件服务器就可以开张了。在客户端,马上可以配置一下Windows 98下的Outlook,收发一下邮件。实际上,Windows下用哪种邮件软件并无所谓,只是要注意以下几点:(1)连接方式选择“通过局域网连接”;(2)邮件服务器的地址直接填入SCO Unix主机的IP地址;(3)账号和口令填入SCO Unix普通用户的账号和口令。对于远程用户,想通过广域网使用SCO Unix的邮件服务,需要在Windows 98的网络配置中将局域网中路由器的IP地址填入网关中,此外还应该在SCO Unix的路由表中加上想访问SCO Unix主机的远程网络的网络地址。 
---- 到此为止,可以用Windows 98下的任何邮件程序收发邮件了。如果准备把SCO Unix作为一台专用的电子邮件服务器使用,那么上述配置还要做些调整。SCO Unix上的邮件传输实际上是通过多通道备忘分发工具(Multichannel Memorandum Distribution Facility,MMDF)来完成的,MMDF可以提供对不同网络的透明访问,以及相关的邮件传送协议。 

二、信箱的位置 

---- 在SCO Unix中,用户信箱存放的缺省位置是在/usr/spool/mail下,但用户可以调整。在配置MMDF邮件服务的主配置界面左边,有一个“Mailboxes”按钮,点击后弹出一个小界面,界面上有2个选项如下。 

The directory /usr/spool/mail 
The usr,s home directory 
---- 上述信息说明,可以选择2种存放邮件位置的方法。首先是放在系统缓冲区/usr/spool/mail中,其次是放在用户的根目录下。实际位置应取决于安装系统时,分配的各分区空间大小。若放在系统缓冲区,即/usr/spool/mail下,则若用户的邮件数量过大,并且取信不及时,会造成根区空间紧张,系统性能下降,甚至停止运行;若放在用户的根目录下,并且在建用户时已将用户分配在一个空间很大的独立分区内,则没有上述担忧,系统的性能要好一些,缺陷是若用户经常使用telnet远程登录,则邮件的安全性稍差,因为好奇的用户或初学者会无意地破坏把邮件文件。当然,若安装SCO Unix时没有划分独立分区,不考虑邮件文件的安全因素,则信箱放在哪里都无所谓。这里建议选择“The usr,s home directory”,点击“OK”按钮即可。 
三、改善性能 

---- SCO Unix使用deliver守护进程来完成邮件传递任务。进程deliver的活动受MMDF的配置文件/usr/mmdf/mmdftrailor的控制。可以用下面的命令来检查守护进程deliver的运行情况: 

ps  -u  mmdf

---- 系统一般显示如下信息: 
PID   TTY    TIME     CMD
358     ?     00:00:01  deliver

deliver会周期性地对邮件队列进行扫描。deliver缺省的运转周期是10分钟,即每隔10分钟,deliver对每个通道进行检查,处理完所有通道后进入休眠状态,直至下一个周期。调整deliver的运转周期有下面2个方法。 
---- 1.编辑文件/usr/mmdf/mmdftailor,查找到含“MSLEEP”的行,将其值改为所需要的值,单位是秒; 若没有则增加上一行,内容如下: MSLEEP 120 

---- 2.修改文件/etc/rc.d/7/umaemons,这个文件是系统进入多用户状态时调用用户定义的守护进程的脚本。可以在此文件中增加deliver守护进程,并指定deliver的运转周期。比如,为了提高效率,可以增加如下一行: 

/bin/su mmdf -c "/usr/mmdf/bin/deliver -b T45"

---- 这样,deliver检查通道的时间间隔缩短为45秒。如果SCO Unix服务器是作为邮件网关使用,用户的邮件往来非常繁忙,那么不妨再增加几个deliver守护进程,让系统对每个通道进行并行处理。增加的方法很简单,举例如下: 
bin/su mmdf -c "/usr/mmdf/bin/deliver -b -T120 -clocal"
/bin/su mmdf -c "/usr/mmdf/bin/deliver -b -T180 -csmtp"
/bin/su mmdf -c "/usr/mmdf/bin/deliver -b -T300 -cuucp"

---- 这样,系统将采用3个独立的deliver守护进程对邮件通道进行单独的处理,时间间隔根据需要各不相同。若系统没有配置uucp,则上面第3行可省略。若上述处理方法还不能使人满意,比如,smtp通道仍嫌拥挤,可以采用启动多个deliver守护进程实施并行处理的方法,举例如下: 
/bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"
/bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"
/bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"

---- 这里启用了3个deliver服务守护进程对smtp通道进行并行处理。要注意的是别忘了改完/etc/rc.d/7/udaemons文件后重新启动一下机器。 
四、邮件系统的诊断 

---- 配置完MMDF后系统会建一个账号叫postmaster,这是配置邮件服务器时,涉及Internet协议的标准做法。一般情况下,邮件系统在使用过程中都会把发现的问题用邮件发送给postmaster,而系统定义的postmaster别名缺省值是root用户。若不经常用root身份收发邮件,则不容易发现问题。因此有必要将系统发送给postmaster的所有邮件都重定向给一个经常使用的用户,比如informix用户。 

---- 重定向方法很简单:在主控台上的图形界面打开MMDF的主配置界面(参见前面的第3步),点击主界面右边的“Redirection...”按钮,进入邮件重定向配置界面。第1个输入栏上的提示是“Mail sent to 'Postmaster' will be sent to:”,将输入栏中的缺省值root改成informix。第2个输入栏上的提示是“You may select user(s) to receive mail sent to the accounts you list in the Non-user accounts fileds below:”,这句话的意思是选择一个或多个真实用户,用来收取发送给虚拟用户的邮件。 

---- 对于SCO Unix系统而言,安装后会自动建一批系统专用的虚拟用户,如“lp”、“mmdf”、“uucp”等。系统发现某一方面有问题或提示、警告信息都会发邮件给对应的用户,必须把这些用户的邮件重定向到经常使用的账号。在下边的输入栏中填入想接收邮件的真实用户名即可,可以填入多个用户名,中间用空格分开即可,如“root informix”等等。 

---- 若在配置邮件服务器时遇到麻烦,可按下述2个步骤检查。 

---- 1. 检查MMDF系统配置 
---- 所有的配置结束后,以root登录到系统,运行命令:# /usr/mmdf/bin/checkup | more可对服务器上的MMDF系统进行全面的检查。所显示信息对问题的诊断非常有帮助。若发现问题,系统会在发现的问题前加上两个“*”号警告。 

---- 2. 检查邮件地址 
---- 系统配置完,可以用checkaddr命令来检查一下邮件地址正确与否。例如,想检查一下邮件地址informix@mymail.com,运行以下命令: 

# /usr/mmdf/bin/checkaddr  informix@mymail.com

---- 系统会显示:informix@mymail.com : OK 若想要系统显示更详细的信息,可加上-w选项。 
---- 3. 监测邮件队列 
---- 使用命令/usr/mmdf/bin/checkque可对邮件系统进行监测和检查,借此可以得知每个通道上等待传递的邮件数量、全部的消息数、邮件队列目录的大小等重要信息,并可以依此来调整邮件服务器的性能。例如,在命令行下执行命令:/usr/mmdf/bin/checkque -c smtp 

---- 可以查看邮件服务器的smtp通道的具体数据。服务器执行命令checkque后显示信息如下: 

 # /usr/mmdf/bin/checkque
Tue Jun 20 08:49:  0 queued msgs / 104960 byte queue directory
                   0 Kbytes in msg dir
0 msgs    0 Kb (local   ) local    : Local delivery
                   deliver start   : Tue Jun 20 00:03
                   deliver message : Tue Jun 20 00:03
                   deliver end     : Tue Jun 20 00:03 / 8 hours
0 msgs    0 Kb (list    ) list     : Mailing list processor
                   No deliver start
                   No deliver message
                   No deliver end
0 msgs    0 Kb (smtp    ) smtp     : SMTP  channel
                   deliver start   : Mon May  8 14:50
                   deliver message : Mon May  8 14:50
                   deliver end     : Mon May  8 14:50
                   pickup start    : Mon Jun 19 17:50
                   pickup message  : Mon Jun 19 17:50
                   pickup end      : Mon Jun 19 17:50 / 14 hours

五、邮件系统的维护 
---- 1. 删除过时的邮件 
---- 首先看一下过时邮件的定义。在文件/usr/mmdf/mmdftailor中有2个参数MFAILTME和MWARNTIME。MFAILTIME定义了系统在发送给作者无效信息和将其清理之前信息在发送队列中的等待时间,MWARNTIME定义了在系统发出警告信息之前,一条滞留信息在队列中的停留时间,2个参数都以小时为单位。若文件/usr/mmdf/mmdftailor中没有这2个参数,可以手工增加,格式如下: 

MFAILTME     24
MWARNTIME    10

---- 运行命令/usr/mmdf/bin/cleanque可以把系统中超过上述2个参数规定时限的信息清理掉。这样做很有必要,因为过时的信息不清理的话,会占用大量存储空间,并增加邮件系统的负载。为此,可以定期在命令行下运行以下命令: 
#/usr/mmdf/bin/cleanque [-w]

---- 最好是在root的定时执行文件/usr/spool/cron/crontabs/root中加上类似下面一行: 
30 23 * * 1,?,5 /usr/mmdf/bin/cleanque

---- 上述命令定义了系统在每星期一、星期三和星期五的晚上23:30自动进行邮件清理工作。 
---- 2. MMDF日志文件的清理 
---- SCO Unix邮件系统的日志文件存放在目录/usr/mmdf/log下,可以在MMDF的主配置界面中定义日志文件的类型,缺省的类型是“FAT”,即只记录MMDF邮件系统的致命错误,这样日志文件的尺寸要小些。若想了解和追踪邮件系统出现的问题,可选择“BTR”或“PTR”类型,这2种方式可以详细记录邮件系统的统计和跟踪信息。建议不定期地对目录中的日志文件进行检查,以防文件过大,造成磁盘空间浪费。当然最好的办法仍是编一个清理日志的shell程序。 

---- 至此,在SCO Unix上配置邮件服务的过程和维护方法介绍完毕,本人按照上述方法配置的邮件服务器一直运行稳定可靠,基本未出现过问题。只是有一次某用户的系统信邮被锁住,Windows下所有收发邮件的程序都无法读取邮件,甚至使用Telnet方式登录到主机上用SCO Unix的mail程序都无法读取。后来发现该用户曾使用编辑工具打开信箱文件进行过读写操作。经仔细调查发现在/usr/spool/mail目录下有一个与该用户同名、后缀为lock的文件,运行/usr/mmdf/bin/cleanlck进行解锁后一切正常。 

---- 最后需要指出的是,提高SCO Unix邮件服务器的性能,单纯增加deliver守护进程的方法会有相当大的作用,但使用过度也会使服务器的系统负载增加,说不定会弄巧成拙。如何有效地提高系统性能,做到合理配置各种系统参数,让SCO Unix运行在最佳状态,这对一个SCO Unix系统管理高手来说都是一个挑战。建议在配置完邮件系统后,若运行正常,则执行命令/usr/mmdf/bin/checkque来获得邮件系统的各参数,并依此作为调整的依据。然后用sar等命令对系统的缓冲区命中率、CPU使用情况、磁盘的I/O状况等进行监测,保证系统的正常运转。SCO Unix 5.0以上版本提供了一个监测系统性能的实用工具叫Sco doctor lite,它可在图形或文本状态下运行,用起来十分直观方便。 
阅读(830) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~