cronjobからの出力を複数の電子メールアドレスに送信する方法は?


55

crontabファイルの最初で、MAILTO命令を使用して、出力を電子メールとして電子メールアドレスに送信することを示すことができます。出力を複数のアドレスに送信したいと思います。複数のアドレスを指定することは可能ですか?

回答:


72

使用するcronデーモンパッケージによって異なる場合がありますが、これはUbuntu HardyのVixie Cronのマンページからのものです。

MAILTOが定義されている(空でない)場合、その名前のユーザーにメールが送信されます。MAILTOは、受信者ユーザーをコンマで区切ることにより、複数の受信者にメールを送信するためにも使用できます。MAILTOが定義されているが空(MAILTO = "")の場合、メールは送信されません。それ以外の場合、メールはcrontabの所有者に送信されます。

Vixie Cronを使用していない場合、または不明な場合は、crontabファイルのマニュアルページを試してください。 man 5 crontab

MAILTO="user.one@domain.one,user.two@domain.two"

12
もう一つ注意すべき-利用だけでアドレスの間にコンマ。 スペースも使用しないでください。そうしないと、cronはアドレス(おそらく/ var / log / cronまたは/ var / log / daemonに)を「UNSAFE」として記録し、そのアドレスのリストへの送信を拒否します。
デビッドガードナー

1
アドレスをコンマではなくスペースで区切るcronと、最初のアドレスにのみメールを送信することが起こりました(crontab変更を保存するときに不満を言わなかったのは残念です)。syslog((CRON) error (bad mailto))にエラーがありますが、誰も気づきませんでした...
トビアス

10

上記の回答の代わりに、メールグループである単一のアドレスに送信できます。これは、個々のサーバーのcrontabでメールサーバーのグループ内のアドレスを管理する方が簡単なので、複数のサーバーを管理する場合に特にうまく機能します。


私見これは正しい答えです。さまざまなcrontabで電子メールアドレスの個々のリストを管理したいのは誰ですか?
悪魔のような子犬14

単純なリストを作成しました。1. rootとして、次の/etc/aliasesような行を追加して「仮想受信者」を追加しますcron-listeners: fred@example.com, george@example.com。2. crontabで、MAILTO=cron-listenersrootアクセス権がない場合は、.forward代わりにメソッドを試すことができます。
joeytwiddle

4

1つの解決策は.forward、適切なアドレスにメールを送信するユーザーアカウント上のファイルです。


1
+1 .forwardファイルを使用する方法です。
sleske

0

最良の答えはおそらく、ディストリビューションの現在のバージョンのcron / crontabのマニュアルページをチェックして、MAILTOパラメーターで実行できることを確認するか、メールを複数のアドレスに転送するメールアドレスを指定することです。


0

,各メールの後に追加します。例:MAILTO="some.user1@example.com,some.user2@example.com"


3
ドキュメントでは、電子メールはコンマで区切られています。ここではセミコロンを使用しています。この構文は機能していますか?
フィジカル

1
@マイケルハンプトンは;動作しません
030

@Alfred私はそれをよく知っています。コメントした他の人もそうです!
マイケルハンプトン

1
@kasperd他の投稿の意味を変更するのは適切ではないからです。それはポスターだけのためであり、今のところ彼はそれを修正しないことを選択しました。間違った回答は、代わりに投票し、コメントする必要があります。
マイケルハンプトン

1
投稿を修正しました。2010年にどのように機能していたかわかりません。上記の投稿で@ThatGraemeGuyとして。Cronパッケージに依存する可能性があります。
dannyb2100
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.