LoginSignup
1
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-11-10
動作環境
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の処理が途中でエラーとなった場合、終了メールは(当然)到着しない。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3