/var/spool/mail/root を空(削除)にする

2021-06-30

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

ログインすると「You have mail in /var/spool/mail/root」とroot宛にメールが届いている事があります。cronの標準出力・エラー出力をメールで送信されます。メールを確認しないと溜まっていくばかりです。サイズも肥大化するので削除します。

削除方法は以下のコマンドで削除できます。「/dev/null」にファイルを出力するとその内容が破棄されます。Windows・macOSだとファイルの中身をゴミ箱に入れているような感じです

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

cron宛のメールを止める

上記のコマンドはroot宛のメールは削除されますが、cron宛のメールを止めないとまた届くのでcrontabの設定を変更します。

/etc/crontabの「MAILTO=root」になっている箇所を「MAILT0=""」に変更します。下記では「MAILTO=root」をコメントアウトして「MAILT0=""」を追記しています

# vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
MAILT0=""
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

設定変更後ですが、設定変更後のcrondを再起動します

# CentOS 6.x
# /etc/init.d/crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

# CentOS 7.x
# systemctl restart crond

定期的に/var/spool/mail/root を空にするようにする

crontabの設定でcronの標準出力とエラー出力がメールで届かないようになりますが、logwatchや他のアプリケーション等のメールroot宛に届く場合があるので、下記のようにcronで定期的に削除して対応することもできます。

下記では早朝の5時に「/var/spool/mail/root」を空にしています

$ crontab -e
0 5 * * * cat /dev/null > /var/spool/mail/root

 

LinuxCentOS 5,CentOS 6,CentOS 7

Posted by admin