cron の実行ログと MTA

Published: 2023/3/18


サーバーにおいて、何かを定期実行する場合、それは cron を使うことが一般的である。 cron は、その設計として、その実行時に、実行しているプロセスが出力しているログなどについては、 MTA を通じてユーザーにレポートする設計になっている。

実際に MTA がいるかどうかについては、 cron は sendmail コマンドの有無でそれを判定する。 もし sendmail コマンドが見つからない場合、 cron はそれを No MTA installed, discarding output というメッセージとして syslog に出力し、その内容は捨て去ってしまう。

とにかくなんでも良いから MTA が欲しい場合、 Postfix をインストールしておくのが一般的。 Postfix がインストールされていた場合、 cron は、 MAILTO の設定がない job については、その crontab の保有者に向かって実行ログのメールを sendmail する。

デフォルト設定の Postfix の場合、ローカルのユーザーに向けられたメールは、 /var/mail/<ユーザー名>Mail Spool に配達される。 ここに届けられたメールたちを確認したい場合、 cron はサーバー上で動かすのが一般的なので、 CLI ベースの MUA で確認するのが良い。

CLI ベースの MUA としては、デファクトスタンダードは Mutt であるため、これをインストールして、その crontab を保持しているユーザーで mutt コマンドで起動することで、実際に配達されていたメールたちを確認することができる。


Tags: cronmtamuttpostfix