thinksell archive

qmail 備忘録 #2

qmail備忘録 #1

先にextend用をmiで書いたらつかれた:-}

昨日に続いて、qmailの備忘録。あともうちょっとやなぁ。

■qmailの備忘録-その2

[追加機能のインストール]

[tcpserverのインストール(作業用ディレクトリは、/usr/local/src)]

1./usr/blocal/binディレクトリにインストール

% wget ftp://ftp.jp.qmai.org/qmail/ucspi-tcp-0.88.tar.gz
% tar zxvf ucspi-0.88.tar.gz
cd ucspi-0.88
make
su
make setup check

2.pop3用データベースの作成 /etc/tcp.pop3

#
# /etc/tcp.pop3 : configuration of pop3 service
#
:allow

/usr/local/bin/tcprules /etc/tcp.pop3.cdb /etc/tcp.pop3.tmp

</etc/tcp.pop3

3.smtp用アクセスデータベースの作成 /etc/tcp.smtp

#
# /etc/tcp.smtp : configuration of smtp service
#
***.***.*.(local IP):allow,RELAYCLIENT=""
***.***.*.(local IP):allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
.hogehoge.com:allow,RELAYCLIENT=""
:allow

/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp

</etc/tcp.smtp

[daemontoolsのインストール] daemontoolsは、UNIXサービス(デーモン)の起動、終了、状態監視、ログの取得をおこなうツール。

次のプログラムを組み合わせて動作。

他にもsvscanbootやmultilogなどのプログラムもありますが、ここは省略。

/直下にディレクトリに抵抗を感じるかどうかは個人的な問題。私は気にしません。

1.daemontoolsのインストール

# mkdir -p /package
# chmod 1755 /package
# cd /package
# wget ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# tar zxvf daemontools-0.76.tar.gz
# cd admin/daemontools-0.76
# ./package/install

新たに作成されるディレクトリ

/service
/command

作成されるファイルおよびそのシンボリックリンク /package/admin/daemontools/command/下に実行ファイル
/command/下にシンボリックリンク















/usr/local/bin/下にさらにシンボリックリンク

/etc/inittabの末尾に次の1行が追加

SV:123456:respawn:/command/svscanboot

2.inittabの変更を反映

# kill -HUP 1

3.念のためにpsコマンド

#ps -ef | grep svscan
省略

4.daemontoolsが適切に日付を処理しているか確認

# cd /command/
# date | ./tai64n | ./tai64nlocal
# 日付が表示
# date | sh -c './multilog t e 2>&1' | ./tail64nlocal
# 日付が表示

出力の左と右で時間が同じであればOK

[daemontoolsでサービスの監視]

1.qmailの起動をdaemontoolsで管理

# mkdir /var/qmail/supervise
# mkdir /var/qmail/supervise/qmail

runスクリプトの作成。実行属性をつけるのを忘れないように

#!/bin/sh

Using splogger to send the log through syslog.

Using qmail-local to deliver messages to ~/Maildir/ by default.

exec env - PATH=“/var/qmail/bin:$PATH” ? qmail-start ./Maildir/ splogger qmail

# ln -s /var/qmail/supervise/qmail /supervice/qmail
# svstat /service/*
/service/qmail: up (pid ****) ** seconds

up時間が0または1秒の間に再起動なければOK

2.pop3をdaemontoolsで管理

# cd /var/qmail/supervise
# mkdir pop3d

runスクリプトの作成

#!/bin/sh

pop3d/run : qmail-pop3d starting script

exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin: ? /usr/local/sbin:/usr/local/bin" ? envdir /etc/relay-ctrl relay-ctrl-chdir ? tcpserver -v -x /etc/tcp.pop3.cdb -R -H 0 pop3 ? recordio fixcrio ? qmail-popup hostname.hogehoge.com /home/vpopmail/bin/vchkpw ? relay-ctrl-allow ? qmail-pop3d Maildir 2>&1

ln -s /var/qmail/supervise/pop3d /service/pop3d

3.SMTPをdaemontoolsで管理 # cd /var/qmail/supervise

# mkdir smtpd

runスクリプトの作成

#!/bin/sh

smtpd/run : smtpd starting script

exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin: ? /usr/local/sbin:/usr/local/bin:" ? envdir /etc/relay-ctrl relay-ctrl-chdir ? /usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb ? -R -H -l0 -u (qmaild UID) -g (nofiles GID) 0 smtp ? relay-ctrl-check ? /var/qmail/bin/qmail-smtpd 2>&1

UID,GIDは”% id qmaild”で確認

# ln -s /var/qmail/supervise/smtpd /service/smtpd

あ、あかん、つかれた:-Z。誤字脱字、スペルミスはゆっくり調べます。

relay-ctrl,vpopmailは次にします:-P