いまどきqmailなんか使うなよ、という声が聞こえる気がします。
しかし乗り換えるのも面倒そうな上に、Ubuntu16.04LTSではご丁寧にバイナリのパッケージ(qmail)まで用意されています。ただしuniverseかな。昔はqmail-srcしかなかったと思うのだけど、ライセンス上、何らかの問題があってそうなってたのが回避できたのかな。その辺の昔話は忘れてしまった。
ただしこれ、djbのオリジナルのqmailと比べると、ちょっとだけバージョンが進んでる。誰かがメンテしてるのかな。いくつかパッチあてたりとか、そんなんだろうか。そんなことすら知らずに使ってしまう。全く意識低い。
なぜqmailを使い続けるかというと、virtualhostの扱い方が理解しやすくて、具合が良いからなんですよね。Postfixで同じことをやろうとすると、どうしたらいいんでしょう。いずれやらないとな、とは思っていますが。
さて、入れて動いてよしとしてたのだけど、ある時に「ログがあんまり残ってない」ことに気が付きました。具体的には、100kBくらいのログが10個しか残っていない。それは、いくら何でも少ないです。
これはqmailが使っているmultilogというやつの構造の問題のようですね。ファイルサイズと、ローテーション数しか指定できない。1カ月残したいなとか、そういうのには耐えないような感じ。
頼むからsyslogとか、世間一般のツールを使っていただきたい、と思う人はqmailには近寄らない方がいい。そこはまるで独自の世界なんです。起動の仕方から何から何まで普通ではない。
もちろん設定を変えたらsyslog経由でも出せると思います。でも、あまりいじるのもそれはそれで不安ですし。
見たところ、multilogのオプションは何も渡しておらず、標準の値が使われています。とりあえず、ローテーションは10で良いとして、ファイルサイズのデフォルト値が小さすぎる気がするので、1つか2つ上の桁を指定したらいいのではないかな。もちろんmanも読んでね。
メール受信時のログは、以下のところに設定されている(ほら変でしょう)。とりあえず1桁増やすのはこんな感じです。
/etc/service/qmail-smtpd/log/run
# exec setuidgid qmaill multilog t /var/log/qmail/smtpd
exec setuidgid qmaill multilog t s999999 /var/log/qmail/smtpd
メール送信時のログも同じ感じです。
/etc/service/qmail-send/log/run
# exec setuidgid qmaill multilog t /var/log/qmail
exec setuidgid qmaill multilog t s999999 /var/log/qmail
さて、これでqmailの再起動でもしたらいいんじゃないですかね。どうしたらいいんでしょうね。
qmailctl stop / 止まっているか確認 / 止まってなければkillall → 止まらなければkillall -9 / qmailctl start
とやっています。これでできているようです。
こんなのが誰かの役に立つでしょうか。はっきり言ってqmailはもうあまり使われていないと思うので、検索してもズバリなものは、あまりないかもしれませんよね。忘備録を兼ねて、こうやって残すことにしました。