Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2344495
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: LINUX

2010-01-23 00:32:10

注:
1. supervise相关文件目录为/raid/var/supervise
2. log相关文件目录为/raid/var/log,该目录及子目录的所有权限为qmaill:nofiles
3. qmail软件安装目录为/raid/var/qmail
4. vpopmail软件安装目录为/raid/var/vpopmail

一、 相关程序:
1. daemontool工具包提供的svscan、supervise、mutilog、svc、setuidgid、softlimit、svstat程序。
2. ucspi-tcp工具包提供的tcpserver、tcprules程序。

二、 supervise的目录结构:(假定为/raid/var/supervise目录)
drwxr-sr-t root other qmail-pop3d
-rwxr-xr-x root other run
drwxr-sr-x root other log
-rwxr-xr-x root other run

drwxr-xr-t 4 root other qmail-send
-rwxr-xr-x root other run
drwxr-xr-x root other log
-rwxr-xr-x root other run

drwxr-xr-t root other qmail-smtpd
-rwxr-xr-x root other run
drwxr-xr-x root other log
-rwxr-xr-x root other run

三、各目录相关run文件:
1. /raid/var/supervise/qmail-pop3d/run文件:
#!/bin/sh
exec /usr/local/bin/tcpserver -H -R -v 0 pop3 \
/raid/var/qmail/bin/qmail-popup gzmail.ezhong.com \
/raid/var/vpopmail/bin/vchkpw \
/raid/var/qmail/bin/qmail-pop3d Maildir 2>&1

2. /raid/var/supervise/qmail-pop3d/log/run文件:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t /raid/var/log/pop3d

3. /raid/var/supervise/qmail-send/run文件:
#!/bin/sh
exec env - PATH="/raid/var/qmail/bin: $PATH" \
qmail-start `cat /raid/var/qmail/control/defaultdelivery`
Note:
使用以下命令建立defaultdelivery文件,举例如下:
echo ./Maildir/ >/raid/var/qmail/control/defaultdelivery
MailboxFormat---Name-----Location---defaultdelivery
mbox Mailbox  $HOME ./Mailbox
maildir Maildir  $HOME ./Maildir/

4. /raid/var/supervise/qmail-send/log/run文件:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t /raid/var/log/qmail

5. /raid/var/supervise/qmail-smtpd/run文件:
#!/bin/sh
QMAILDUID=`/usr/xpg4/bin/id -u qmaild`
NOFILESGID=`/usr/xpg4/bin/id -g qmaild`
MAXSMTPD=`cat /raid/var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 4000000 \
/usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb -c " $MAXSMTPD" \
-u " $QMAILDUID" -g " $NOFILESGID" 0 smtp /raid/var/qmail/bin/qmail-smtpd 2>&1
Note:
A.建立concurrencyincoming控制文件:


echo 20 > /raid/var/qmail/control/concurrencyincoming
chmod 644 /raid/var/qmail/control/concurrencyincoming
B.建立SMTP访问控制文件:
echo 127.:allow,RELAYCLIENT="" >>/etc/tcp.smtp
/etc/init.d/qmail cdb

6. /raid/var/supervise/qmail-smtpd/log/run文件:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /raid/var/log/smtpd

四、qmail的启动脚本:(假定为/etc/init.d/qmail文件)
#!/usr/bin/sh

PATH=/raid/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH

case " $1" in
start)
echo "Starting qmail (smtpd+pop3d) & logging: svscan"
cd /raid/var/supervise
nohup env - PATH=" $PATH" svscan &
echo  $! > /raid/var/pid/svscan.pid
;;
stop)
echo "Stopping qmail (smtpd+pop3d) & logging: svscan"
kill `cat /raid/var/pid/svscan.pid`
/usr/local/bin/svc -dx /raid/var/supervise/qmail-smtpd
/usr/local/bin/svc -dx /raid/var/supervise/qmail-send
/usr/local/bin/svc -dx /raid/var/supervise/qmail-pop3d
/usr/local/bin/svc -dx /raid/var/supervise/qmail-smtpd/log
/usr/local/bin/svc -dx /raid/var/supervise/qmail-send/log
/usr/local/bin/svc -dx /raid/var/supervise/qmail-pop3d/log
;;
stat)
/usr/local/bin/svstat /raid/var/supervise/qmail-smtpd
/usr/local/bin/svstat /raid/var/supervise/qmail-send
/usr/local/bin/svstat /raid/var/supervise/qmail-pop3d
/usr/local/bin/svstat /raid/var/supervise/qmail-smtpd/log
/usr/local/bin/svstat /raid/var/supervise/qmail-send/log
/usr/local/bin/svstat /raid/var/supervise/qmail-pop3d/log
;;
doqueue|alrm)
echo "Sending ALRM signal to qmail-send. Scheme send mail queue."
/usr/local/bin/svc -a /raid/var/supervise/qmail-send
;;
queue)
/raid/var/qmail/bin/qmail-qstat
/raid/var/qmail/bin/qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send. Reload: locals & virtualdomains"
/usr/local/bin/svc -h /raid/var/supervise/qmail-send
;;
pause)
echo "Pausing qmail-send"
/usr/local/bin/svc -p /raid/var/supervise/qmail-send
echo "Pausing qmail-smtpd"
/usr/local/bin/svc -p /raid/var/supervise/qmail-smtpd
echo "Pausing qmail-pop3d"
/usr/local/bin/svc -p /raid/var/supervise/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
/usr/local/bin/svc -c /raid/var/supervise/qmail-send
echo "Continuing qmail-smtpd"
/usr/local/bin/svc -c /raid/var/supervise/qmail-smtpd
echo "Continuing qmail-pop3d"
/usr/local/bin/svc -c /raid/var/supervise/qmail-pop3d
;;
restart)
echo "Restarting qmail ......"
echo "+++ Stopping qmail-smtpd."
/usr/local/bin/svc -d /raid/var/supervise/qmail-smtpd
echo "+++ Stopping qmail-pop3d."
/usr/local/bin/svc -d /raid/var/supervise/qmail-pop3d
echo "+++ Sending qmail-send SIGTERM and restarting."
/usr/local/bin/svc -t /raid/var/supervise/qmail-send
echo "+++ Restarting qmail-smtpd."
/usr/local/bin/svc -u /raid/var/supervise/qmail-smtpd
echo "+++ Restarting qmail-pop3d."
/usr/local/bin/svc -u /raid/var/supervise/qmail-pop3d
;;
cdb)
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat < stop -- Stopping qmail(smtpd+pop3d)
start -- Starting qmail (smtpd+pop3d)
pause -- temporarily stops mail service(connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp,pop3, sends qmail-send a TERM & restarts it
doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of qmail queue
alrm -- same as doqueue
HELP
;;
*)
echo "Usage:  $0 {start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac

exit 0
建立日志目录:
mkdir /raid/var/log: 所有者为qmail:nofiles 权限为755
注:其下的子目录pop3d、qmail、stmpd为mutilog自动构造。
建立进程ID号存放目录:
mkdir /raid/var/pid
阅读(484) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~