cronジョブのデフォルトのメール受信者を変更できますか?


12

cronjobからの出力がある場合、ジョブが属するユーザーにメールで送信されると思います。MAILTO=vivek@nixcraft.incronファイルの先頭に何かを追加して、出力の送信先を変更することもできると思います。

cronジョブ root を実行するユーザーではなく、システム全体のcronジョブが電子メールで送信されるようにオプションを設定できますか?(つまり、各ユーザーのcronファイルでこれを設定する必要がないように)

回答:


9

/etc/crontabファイルを確認しMAILTO=root、そこに設定します。/etc/rcファイルにも必要な場合があります

crondMAILTO変数を受け入れるようです。完全にはわかりませんが、起動する前にcrondの環境変数を変更する価値があります。以前のファイルのソースとなるin /etc/sysconfig/crondまたは/etc/rc.d/init.d/crondscriptのように。

例:

[centos@centos scripts]$ strings /usr/sbin/crond | grep -i mail
ValidateMailRcpts
MailCmd
cron_default_mail_charset
usage:  %s [-n] [-p] [-m <mail command>] [-x [
CRON_VALIDATE_MAILRCPTS
mailed %d byte%s of output but got status 0x%04x
[%ld] no more grandchildren--mail written?
MAILTO
/usr/sbin/sendmail
mailcmd too long
[%ld] closing pipe to mail
MAIL

どうもありがとう!+1。おそらく、回答の下部をプリフォーマット/コードフォーマットに入れますか?
cwd

7

入れMAILTO=rootの中で/etc/default/cron。このファイルには、cronのデフォルト設定が含まれています。

man 5 crontab 言う、

MAILTOが定義されている(空でない)場合、その名前のユーザーにメールが送信されます。

参照:http : //man.cx/cron(1) # heading4


どこ?各ユーザーのcrontabファイルについて?
ニキルマーリー

@Nikhilは私の更新された答えをチェックします。
サチンディヴェカー

1
crontabを持っているユーザーのみに機能します。ユーザーのいずれかがこの変数を設定していない場合、機能しますか?@Cwdは、すべてのユーザーを対象としたグローバル設定を特に求めていると思います。
ニキルマレー

@SachinDivekar -1ニキルは正しい。また、私の質問を編集し、その意味を変更しました。編集された意味はあなたの答えと一致しますが、これは私が尋ねていたものではありません。
cwd

2
これは私のために働いていません。デフォルトのファイルにMAILTOを設定し、cronサービスを再起動しましたが、まだルートに送信しています(外部のメールアドレスに送信しようとしています)
-peedee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.