スケジュールしたジョブの結果がcronからメールで送信されないようにするにはどうすればよいですか?
環境変数「MAILTO」を「」に設定する
何かのようなもの:
Shell=/bin/bash
MAILTO=
01 * * * * /your/path/to/script/here.sh
単一のジョブでメールを停止したい場合は、>/dev/null 2>&1を追加するだけです。
例えば:
0 * * * * /home/script >/dev/null 2>&1
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
に送信します。これにより、エラーメッセージを失うことなく、大音量のコマンドを無音にできます。