単一のcrontabエントリのMAILTOをオーバーライドする


20

かなり大きなcrontabを持つロールアカウントが職場にあります。そのMAILTOは共有アドレスを指しているため、何かが失敗した場合、多くの人に通知されます。

このcrontabにエントリを追加したいのですが、何か問題が発生した場合にのみ通知されるようにします。この1つのエントリのMAILTOを変更する方法、またはそれ以外の方法で目標を達成する方法はありますか?


これまでに提案されたものに対する別のアプローチは、ジョブを実行しているユーザーにcronでメールを送信する機能を使用することです。
ヘイデンスリング14

回答:


21

いつでもできます:

MAILTO=you
* * * ...  your cron job
MAILTO=normal.destination

1
これを支持した人々は本当にそれを試しましたか?もしそうなら、どのようなcronの実装?
user1338062

Ubuntu 14.04( "3.0pl1-124ubuntu2")に同梱されているICS / Vixie cronでテストしましたが、そこで動作します。
ニルストエットマン

glyいですが、これを整理する唯一の方法です。動作します!
スタンスター

10

サブシェル内の正しいアドレスを使用して、すべての出力を常にmailコマンドにパイプすることができます。STDOUTまたはSTDERRに何もない限り、cronはメールを送信しません

10 * * * * sh -c 'thisonecommand 2>&1 | mail otheraddress@foo.com '


1
これは機能しません。「mail」コマンドは、出力を取得するかどうかに関係なく送信します。したがって、成功した場合は空のメッセージが表示されますが、成功した場合はメッセージが表示されません。
マイク

5
いいね!メールコマンドからの空の電子メールを回避するには、次のパラメーターを使用します。

3

cronが環境変数で読み込むファイルを事前解析するかどうか思い出せないのでMAILTO、1つのファイルで複数回変更できるかどうかはわかりません。ただし、いつでも別のファイルに分割し/etc/cron.d/fooて、MAILTO=some@email.tld

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