ユーザー/グループに応じて、Chroot 環境内で実行される Cron ジョブを設定しました。
chroot 環境内で実行されているこれらの cron ジョブは、メールを送信できないことに気付きました。
ログ ファイルには、メールを送信するプログラムが見つからないことが報告されています。
Cron プロセスはデフォルトのメール バイナリをどこで探しますか? このパスを設定または構成できますか?
ちなみに、MAILTO= 変数が設定されていない場合、Cron はメールの送信先をどうやって知るのでしょうか? ローカル ホスト上でジョブを実行しているユーザーにのみメールを送信するのでしょうか?
ありがとう!
答え1
Cron プロセスはデフォルトのメールバイナリをどこで探しますか?
特に指定がない限り、パス (/bin:/usr/bin) で見つかったメール プログラムを使用するだけだと思います。ただし、-m
cron のバージョンによっては、コマンドライン引数を指定することもできます。
-m このオプションを使用すると、sendmail(8) の代わりに cron メール出力を送信するために使用するシェル コマンド文字列を指定できます。このコマンドは、stdin で完全にフォーマットされたメール メッセージ (ヘッダー付き) を受け取り、メール ヘッダーで指定された受信者にメール メッセージとして送信する必要があります。
上記はCentOS/RHELでは動作しますが、Ubuntuでは異なります
このパスを設定または構成できますか?
上記を参照。
MAILTO= 変数が設定されていない場合...
MAILTO が設定されていない場合、予想どおり、メールはジョブを実行しているローカル ユーザーに配信されます。
CentOS/RHEL では、/etc/sysconfig/crond で追加のコマンドライン引数を指定できるため、init スクリプトを編集する必要がありません。他の OS/ディストリビューションでも同様の機能が提供される場合があります。