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
コマンドで起動することで、実際に配達されていたメールたちを確認することができる。