Ubuntu16.04LTSのqmailのログがあまり残らない問題

いまどき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

#!/bin/sh
# 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

#!/bin/sh
# 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はもうあまり使われていないと思うので、検索してもズバリなものは、あまりないかもしれませんよね。忘備録を兼ねて、こうやって残すことにしました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です