Linux
mail
Notification
WRF
#migrated

linux / mail > コマンドラインからメールを送る > echo "test" | mail -s "subject" user@software.com | ファイル添付メールの送信

More than 1 year has passed since last update.
動作環境
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)

6CPUで合計2000分程度かかる処理をしている。
その処理が終わったかどうかはターミナルを見れば確認できるが、メール連絡できると便利ではないかと思った。

コマンド

参考 http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/

上記を参考に以下のようなコマンドを実行してみた。
(user@software.comの部分は自分のメールアドレスにする)。

echo "test" | mail -s "subject" user@software.com

send-mail: fatal: parameter inet_interfaces: no local interface found for ::1

fatal parameterエラーの対処

上記のエラーの対処は以下に見つけた。
情報感謝です。
http://okisanjp.hatenablog.jp/entry/2016/06/22/162922

メール送信してみた

エラーの対処をしてから再度以下のようなコマンドを自分のメールアドレス(gmail)宛に送った。

echo "test" | mail -s "subject" user@software.com

1回目のメールは「迷惑メール」に認識された。
迷惑メールでないという設定にした以降は「受信トレイ」に配信されるようになった。

使いどころ

以下のようにコマンドを連結して使う。


$ mpirun -np 6 ./wrf.exe && echo "fin" | mail -s "WRF finished" user@software.com

処理が終わった段階でメールが来る(はず)。

メールが届いた。思ったよりも処理が速かった。

ファイル内容をメール内容にする

rsl.out.0000というテキストファイルが作成されると仮定。


$ mpirun -np 6 ./wrf.exe && cat rsl.out.0000 | mail -s "WRF finished" user@software.com

これで到着するメールの内容がrsl.out.0000になる。

添付ファイルを付ける

参考 stackoverflow

rsl.out.0000というテキストファイルが作成されると仮定。


$ mpirun -np 6 ./wrf.exe && echo "fin" | mail -a rsl.out.0000 -s "WRF finished" user@software.com

これでrsl.out.0000という名前の添付ファイルが付いたメールが到着するようになる。

メールの受け手で処理の内容が分かるようになり便利かもしれない。

注意点 > 処理失敗時にはメールも届かない


$ mpirun -np 6 ./wrf.exe && echo "fin" | mail -a rsl.out.0000 -s "WRF finished" user@software.com

上記のようにした場合、./wrf.exeの処理が途中でエラーとなった場合、終了メールは(当然)到着しない。