clientmqueueにメールを止める方法として前回は、
rhn-virtualization-host と logwatch について書きましたが
割とアクセスが多いのと、ちょっと残しておきたい事が増えたので追記します。
原因
- cronのジョブが指定された時間にメールを送る
前回は書かなかったが、これが一番よくある原因だと思われる。
これについて少し書き遺しておきたいことがあったため追記する。
まずcronの設定ファイルである「/etc/crontab」を見てみる
# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
簡単に説明すると
上半分に設定、下半分にいつ実行するかが書いてある。
「cron.monthly」、「cron.weekly」、「cron.daily」、「cron.hourly」の中も確認した方がいいかもしれません。
詳しくは、ここに分かりやすくまとまってる↓
色んなサイトやブログに載っているが、単純にメールを止めたい場合
上記のcrontabの
MAILTO=root
を下記のように書き変えれば良い。
MAILTO=""
こう変更するだけでrootあてのメールは止まる。
ただ、これで止まらない場合他のユーザのcronが原因している可能性がある。
今回自分の場合は、アプリケーションをインストールした際につくられたか作ったと思われる
アプリケーションユーザのcronが原因だった。
clientmqueueのメール内容を見てみると
crontabに書かれているjobがセグメンテーションエラーで失敗していた。
その内容がメールで毎時間送られている。
メールの本文:
/bin/sh: line 1: **** Segmentation fault /usr/local/ユーザ名/bin/sum > /dev/null
このジョブが何してるのかはアプリケーション次第だが
単純にばっさりと止めちゃいたい場合は、
# crontab -e -u ユーザ名
か
# vi /var/spool/cron/ユーザ名
の内容を編集して、ジョブの実行を操作。
各ジョブが何をしているかは、アプリケーションのベンダー等に確認してエラーを解消するなり、jobを止めるなりしてメールを送らないように設定する。
上記にも書いたがcronの詳しい説明は
cron の設定ガイド (NECさんのページ)に書いてあります。
自分はここが一番分かりやすかったです。
人気ブログランキングへ