/var/spool/mail/root を空にする

root宛てのローカルメールは様々なアプリケーションから送信され、/var/spool/mail/root に書き込まれます。したがって、放っておくと大きなサイズに膨れあがっていることがあります。

そういうときには、次のようにコマンドを実行して、空にできます。

[root ~]# cat /dev/null > /var/spool/mail/root

中身はテキストですから、コピーして圧縮保存した上で、空にしてもいいでしょう。

mailコマンドのサブコマンド

mailコマンドで着信メールの操作を行う際に使用するサブコマンドを整理しておきます。

シェルプロンプトでmailと入力するとメールの一覧が表示され、&プロンプトの状態になります。このプロンプトにサブコマンドを打つことでメールを表示したり、削除したりといった操作を行います。

サブコマンド 機能の説明 [ENTER] 現在選択中のメールの次の(番号の)メールを表示します。選択中のメールを示す一覧表示の先頭の「>」が、表示したメールに移動します。 n 現在選択中のメールの次の(番号の)メールを表示します。選択中のメールを示す一覧表示の先頭の「>」が、表示したメールに移動します。[ENTER]と同じです。 p 現在選択中のメールを表示します。選択中のメールを示すは一覧表示の先頭の「>」は移動しません。 – 現在選択中のメールの前の(番号の)メールを表示します。選択中のメールを示すは一覧表示の先頭の「>」が、表示したメールに移動します。 メール番号 指定した番号のメールを表示します。選択中のメールを示すは一覧表示の先頭の「>」が、表示したメールに移動します。 h メールの一覧を表示します。先頭に「>」が付いているメールが現在選択中のメールを示します。 d 現在選択中のメールを削除します。選択中のメールを示すは一覧表示の先頭の「>」が、削除したメールの次の(番号の)メールに移動します。 d メール番号 指定した番号のメールを削除します。選択中のメールを示すは一覧表示の先頭の「>」が、削除したメールの次の(番号の)メールに移動します。 u メールの削除を取り消します。 m 宛先メールアドレス 指定した宛先メールアドレスにメールを送信します。 r 現在選択中のメールに返信メールを送信します。 q 現在までの操作結果を保存して、mailコマンドを終了します。 x 現在までの操作結果を保存しないで、mailコマンドを終了します。メール削除も取り消されます。

続きを読む »

logrotateのテスト方法

logrotateの設定を、

/etc/logrotate.conf /etc/logrotate.d/に置かれたファイル

にした後に、意図したとおりにログローテーションするかをテストします。

logrotateは、実際はcrondによって、定められたタイミングで実行されるわけですが、今すぐに実行できないといけませんし、crondの設定を変更したくありません。 また、実際にはローテーションされないようにする必要もあります。

こういうときには、次のようにlogrotateコマンドを実行します。logrotate.confを指定すればlogrotate設定全体のテスト、dovecotなどの個別設定を指定すれば個別設定のテストを実行できます。

[root ~]# logrotate -dv /etc/logrotate.conf [root ~]# logrotate -dv /etc/logrotate.d/dovecot

実行結果は、ローテーションする場合とローテーションしない場合の2通りを示しておきます。 なお、/etc/logrotate.d/dovecot の内容は次の通りです。

# dovecot SIGUSR1: Re-opens the log files. /var/log/dovecot.log { missingok notifempty size 50k postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript }

サイズが設定値に達していないので、ローテーションしない場合 [root ~]# logrotate -dv /etc/logrotate.d/dovecot reading config 続きを読む »

logrotateの設定パラメータ

logrotateのファイル毎のローテーション方式は、

/etc/logrotate.conf /etc/logrotate.d/に置かれたファイル

に設定されますが、そこで使用するパラメータを整理しておきます。

パラメータ 機能の説明 missingok 指定のログファイルが存在しない場合でもエラーにしないで、次のログファイルの処理へ移る。 dailyweeklymonthlyyearly それぞれ、日次、週次、月次、年次でローテーションを行う。 notifempty 指定のログファイルが空の場合にはローテーションを行わない。 size サイズ(K/M) 指定したログファイルが指定したサイズより大きい場合にローテーションを行う。 compress ローテーションしたログファイルをgzipで圧縮する。 rotate ローテーションしたファイルを保持する世代数。 create [パーミッション] [ユーザ] [グループ] ローテーションの後に、新規のログファイルを作成する。 dateext ローテーションしたファイルの末尾に日付を付ける。 prerotate~スクリプト~endscript ローテーション条件に合致したログファイルがあった場合に、ログファイル毎に、ローテーションの前に実行するスクリプト。 postrotate~スクリプト~endscript ローテーション条件に合致したログファイルがあった場合に、ログファイル毎に、ローテーションの後に実行するスクリプト。 sharedscripts ローテーション条件に合致したログファイルがあった場合に実行するprerotate、postrotateで指定するスクリプトを、1回だけ実行するようにする。

続きを読む »

Dovecotのログをローテーションする

Dovecotの設定の中に次のようなログファイルの設定があります。ファイル名をdovecot.logとした場合の例です。

log_path = /var/log/dovecot.log

このログは、Dovecotをインストール・設定しただけではローテーションされません。 そこで、次のように/etc/logrotate.d/dovecotを作成して、ローテーションが行われるように設定するといいでしょう。

[root ~]# vim /etc/logrotate.d/dovecot # dovecot SIGUSR1: Re-opens the log files. /var/log/dovecot.log { missingok notifempty size 50k postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript }

なお、この設定はDovecotのWiki『Logging – Dovecot Wiki』を参考にしています。