ec2 でシンプルな mail クライアント mailx
背景
ec2 の cron を実行したとき、標準出力に何か出ると、メールで送られてくる仕組みになっている。 多くの tips では、ハードディスクがいっぱいになるから、これを停止するものが多いが、 停止する前にエラーなどが出ていないか、確認したいものである。
ところが、デフォルトではメールクライアントは入っていない。 単なる cron の結果を読むだけなのだが、何が良いのだろうか。 スプールを直接読み書きするという方法もあると思うが…
とりあえず、 mailx
シンプルなものはよくわからないが、mailx というものがあるのでこれを入れてみる。
$ sudo yum install mailx 読み込んだプラグイン:priorities, update-motd, upgrade-helper 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ mailx.x86_64 0:12.4-8.8.amzn1 を インストール --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ============================================================================================ インストール中: mailx x86_64 12.4-8.8.amzn1 amzn-main 254 k トランザクションの要約 ============================================================================================ インストール 1 パッケージ 総ダウンロード容量: 254 k インストール容量: 451 k Is this ok [y/d/N]:
消費される容量は 451k である。
早速 cron の実行結果が何なのか見てみる
.... make: pipenv: Command not found ...
なんと、pipenv が見つからずに失敗していた。
メールのヘッダーの下の方に何か書いてある。
X-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/home/ec2-user> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=ec2-user> X-Cron-Env: <USER=ec2-user> Status: RO
環境変数がずらりと並んでいる。 おや? PATHが、/usr/bin:/bin だけしか設定されていない。これが原因だ。
…というわけで、イケてる mail クライアントだと、ヘッダーの部分は隠してしまうかもしれないが、 mailx だと cron のデバッグにちょうどいいのである。ただし、操作方法が分かりにくいのが難点である。