先にextend用をmiで書いたらつかれた:-}
昨日に続いて、qmailの備忘録。あともうちょっとやなぁ。
■qmailの備忘録-その2
[追加機能のインストール]
- tcpserverのインストール
- daemontoolsのインストール
- relay-ctrlのインストール
- vpopmailのインストール
[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サービス(デーモン)の起動、終了、状態監視、ログの取得をおこなうツール。
次のプログラムを組み合わせて動作。
- svscanサービス群の監視
- supervise特定サービスの監視
- svstatサービスの状態を調査
- svcサービスに対して起動・終了の指示
他にも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