Cron はデフォルトのメールバイナリをどこで探しますか?

Cron はデフォルトのメールバイナリをどこで探しますか?

ユーザー/グループに応じて、Chroot 環境内で実行される Cron ジョブを設定しました。

chroot 環境内で実行されているこれらの cron ジョブは、メールを送信できないことに気付きました。

ログ ファイルには、メールを送信するプログラムが見つからないことが報告されています。

Cron プロセスはデフォルトのメール バイナリをどこで探しますか? このパスを設定または構成できますか?

ちなみに、MAILTO= 変数が設定されていない場合、Cron はメールの送信先をどうやって知るのでしょうか? ローカル ホスト上でジョブを実行しているユーザーにのみメールを送信するのでしょうか?

ありがとう!

答え1

Cron プロセスはデフォルトのメールバイナリをどこで探しますか?

特に指定がない限り、パス (/bin:/usr/bin) で見つかったメール プログラムを使用するだけだと思います。ただし、-mcron のバージョンによっては、コマンドライン引数を指定することもできます。

-m このオプションを使用すると、sendmail(8) の代わりに cron メール出力を送信するために使用するシェル コマンド文字列を指定できます。このコマンドは、stdin で完全にフォーマットされたメール メッセージ (ヘッダー付き) を受け取り、メール ヘッダーで指定された受信者にメール メッセージとして送信する必要があります。

上記はCentOS/RHELでは動作しますが、Ubuntuでは異なります

このパスを設定または構成できますか?

上記を参照。

MAILTO= 変数が設定されていない場合...

MAILTO が設定されていない場合、予想どおり、メールはジョブを実行しているローカル ユーザーに配信されます。

CentOS/RHEL では、/etc/sysconfig/crond で追加のコマンドライン引数を指定できるため、init スクリプトを編集する必要がありません。他の OS/ディストリビューションでも同様の機能が提供される場合があります。

関連情報