web-dev-qa-db-ja.com

cronが私にメールを送信しないようにします

スケジュールしたジョブの結果がcronからメールで送信されないようにするにはどうすればよいですか?

10
Richard Hoskins

環境変数「MAILTO」を「」に設定する

何かのようなもの:

Shell=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh
15
OscarRyz

単一のジョブでメールを停止したい場合は、>/dev/null 2>&1を追加するだけです。

例えば:

0 * * * * /home/script >/dev/null 2>&1
12
Rob

Cronは、stdoutまたはstderrのいずれかに出力がある場合にのみメールを送信します。

作成したスクリプトの場合は、冗長性を減らします。不要なechoまたはprintステートメントを削除します。 stdout/dev/nullにリダイレクトすることも有効な解決策です。

2 * * * * /my/script > /dev/null

それでもメッセージが表示される場合は、出力がstderrにあるため、shouldエラーであり、解決する必要があります。そうでない場合は、stderr to /dev/null with ..

2 * * * * /my/script > /dev/null 2> /dev/null

..エラーメッセージを無視することは一般的に悪い考えですが! (cronジョブが壊れていることをどのようにして知ることができますか?)

2>&1を使用して、特定のコマンドの出力をstderrからstdoutにリダイレクトできます。例:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

..次に、cronジョブでstdout/dev/nullに送信します。これにより、エラーメッセージを失うことなく、大音量のコマンドを無音にできます。

4
dbr