/etc/cron.daily/foo:ルートではなく特定のユーザーにメールを送信しますか?


13

CentOS 5.5を実行しています。

/etc/cron.daily/にいくつかのcronjobが保存されています。これらのcronジョブの一部の電子メールは特定の電子メールアドレスに送信し、/ etc / cron.daily /の残りの電子メールはデフォルトの電子メールアドレス(root @ localhost)に送信する必要があります。

/etc/cron.daily/のcronjobsは、/ etc / crontabファイルから実行されます。/ etc / crontabは「MAILTO」フィールドを指定します。/etc/cron.daily/foo cronjobにMAILTOを設定してこれをオーバーライドできますか?

これを処理する最良の方法は何ですか?


CentOS 6.5(cronie)ユーザーへの注意:/etc/crontabデフォルトを指定しません。
アダムモンセン14

回答:


13

設定MAILTO=user@example.org/etc/cron.daily/foo機能しません。スクリプト出力はuser@example.orgに送信されません。

http://www.unixgeeks.org/security/newbie/unix/cron-1.htmlのページも簡単な解決策を提案しています。

このファイル/etc/cron.daily/fooには次のものが含まれています。

#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org

これにより、「stefanl@example.org」に、スクリプトのフルパス(例:)に等しい件名のメールが送信されます/etc/cron.daily/foo

Unixgeeks.orgはこれについて次のように述べています。

cronからの出力

前にも言ったように、cronからの出力はプロセスの所有者、またはMAILTO変数で指定された人にメールで送信されますが、それを望まない場合はどうでしょうか?出力を他の誰かにメールで送信する場合は、出力をコマンドメールにパイプするだけです。例えば

cmd | mail -s「メールの件名」ユーザー

時々、stdoutではなくcronjobからのみエラーを受け取りたいので、このトリックを使用します。構文は一見間違っているように見えるかもしれませんが、動作することを保証します。次のcronjobは、STDOUTを/ dev / nullに送信し、パイプラインを介してSTDERRを処理します。

doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org

同じことですが、syslogに送信します。

doit 2>&1 >/dev/null | /usr/bin/logger -t $ME

ファイルと電子メールを送信するCronjob stderrへの ServerFaultに関する私の回答も参照してください


6

よりエレガントなソリューションは、/etc/cron.d直接使用することです。スクリプトを/etc/cron.dailyに入れる代わりに/usr/local/sbin/myscript.sh、次のような場所に置き、次のようにファイル/etc/cron.d/myscriptを作成します。

MAILTO=root,whomever@example.org
# run myscript.sh at 4:11 every day
11 4 * * * root /usr/local/sbin/myscript.sh

これにより、ジョブをいつ実行するかをより詳細に制御できます。たとえば、特定の平日などに限ります。詳細については、crontab(5)男性を参照してください。


0

このマシンでSAにアクセスできる場合、新しいユーザーアカウントを作成し、このアカウントにタスクを追加できますcronタスク。このユーザーのメールは、このアカウントのホームフォルダーにある.forwardファイルを使用して転送できます。cronタスクに特権アクセスが必要な場合は、このユーザーの権限を設定する必要があります。

これとStefanの答えのどちらが最適かは、設定​​の手間と、エラーメッセージをルートメールに送信するか、通常は毎日の出力を監視する人に送信するかによって異なります。

幸運を

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