cronによるメール送信を停止する


10

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

回答:


15

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

Somethigのような:

SHELL=/bin/bash
MAILTO=



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

12

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

例えば:

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

1
次の開始前に1つの実行が完了することが確実な場合は、出力を/ dev / nullではなく、指定されたファイルにリダイレクトすることをお勧めします。問題。
MAS

4

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

それがあなたが書いたスクリプトである場合、それをより簡潔にしてください-不要なechoor printステートメントを削除してください。リダイレクトstdoutにすること/dev/nullも有効なソリューションです。

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

あなたはまだそれを実行した後、メッセージを取得した場合、出力はオンになっているstderrので、それは、必要がある、あなたがリダイレクトすることができない場合は...解決すべきエラー、ことstderr/dev/nullして。..

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

..ただし、エラーメッセージを無視することは、一般に悪い考えです。(cronジョブが壊れていることをどうやって知るのですか?)

特定のコマンドの出力をstderrからstdoutにリダイレクトすることができます2>&1-たとえば:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

..thenダイレクトstdout/dev/nullエラーメッセージを失うことなく、あなたが大声でコマンドを黙らそのように-あなたのcronジョブに

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.