ウェブサイト検索

Linuxでルートメール(メールボックス)ファイルを削除する方法


通常、Linuxのメールサーバーでは、時間が経つにつれて/var/spool/mail/rootファイルのサイズがかなり増加する可能性があります。これは、デフォルトで設定されたさまざまなプログラム、サービス、デーモンがrootアカウントのメールボックスに通知を送信するためです。

もしルートメールボックスファイルのサイズが大幅に増加した場合、ディスクまたはパーティションのスペースを確保するためにファイルを削除する対策を考慮するべきです。

ただし、実際にルートメールメッセージを削除する前に、重要なメールを削除しないように、すべてのルートメールを読むようにしてください。コンソールで、rootとしてシステムにログインし、mailコマンドを実行すれば、自動的にルートアカウントのメールボックスが開かれます。システムにmailコマンドラインユーティリティが存在しない場合は、以下のコマンドを発行してmailxまたはmailutilsパッケージをインストールしてください。

# yum install mailx          [On CentOS/RHEL/Fedora]
apt-get install mailutils  [On Debian/Ubuntu]

最も簡単な方法は、Linux stdout リダイレクションを使用してファイルに出力することです。この方法で、メールボックスファイルを切り詰めることができます。以下の例で示します。

# > /var/spool/mail/root

ルートアカウントのメールボックスファイルを切り捨てるために使用できる別の方法は、特別なLinuxファイルである/dev/null(Linuxのブラックホールファイル)の内容をcatコマンドで読み取り、その出力をルートメールボックスファイルにリダイレクトすることです。以下の例に示すように、/dev/nullファイルの内容を読むと、すぐにEOF(ファイルの終わり)が返されます。

# cat /dev/null > /var/spool/mail/root

ファイルを切り詰めた後、catコマンドやmoreまたはlessコマンドを使用して、rootアカウントのメールボックスファイルの内容を確認し、ファイルの内容が正常に消去されたかどうかを判断します。

lessコマンドは即座にファイルの終わりを返すべきです。

ルートアカウントのメールボックスファイルを切り詰めるプロセスを自動化するには、以下の例のように毎晩真夜中に実行するcrontabジョブを追加します。

# 0 0 * * *  cat /dev/null > /var/spool/mail/root 2>&1 > truncate-root-mail.log

それでおしまいです!ルートメールボックスを削除する他の方法をご存知の場合は、下のコメントセクションでぜひ教えてください。

関連記事: