cronがエラーメッセージを送信しないようにする

cronがエラーメッセージを送信しないようにする

ユーザーpi(Raspbian Stretchを実行しているRaspberry Pi)に対して15分ごとにジョブを実行するようにcronを設定しました。

6,21,36,51 * * * * /usr/bin/mosquitto_sub -h Pi3Plus.local -v -C 1 -t weather >> weather.log

また、Gmail経由でメールを送信するようにssmtpを設定しました。

cronジョブはサーバー接続に頻繁に失敗し、エラーメッセージを生成します。

問題は、ユーザーpiにメッセージを送信しようとし、ssmtpがそれをpi@gmailに変更してからGmailに送信しますが失敗することです。

ssmtp、ssmtp.conf、cron、crontabのドキュメントを読みましたが、これらのメッセージを停止するエントリが見つかりませんでした。

エラーの発生を防ぐために、cronジョブでエラーメッセージをキャプチャするスクリプトを作成できます。

ベストアンサー1

~からクローンタブマニュアル:

LOGNAME、HOME、SHELLに加えて、cron(8)はMAILTOを調べて、「this」crontabでコマンドを実行したためにメールを送信する理由があるかどうかを確認します。 MAILTO が定義され、空でない場合、メールは指定されたユーザーに送信されます。MAILTOが定義されているが空の場合(MAILTO = "")、メールは送信されません。それ以外の場合は、電子メールがcrontabの所有者に送信されます。

この例に示すように、crontabファイルの先頭に変数を追加するだけです(同じマニュアルページからインポートされ、明確にするために少し編集されます)。

# mail any output to 'paul', no matter whose crontab this is
MAILTO=paul
# run five minutes after midnight, every day
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

おすすめ記事