Web APIをShellで使おう!(メールで情報を送る)2

こんにちは。Arakawaです。
さて、二回目ですが、取得したデータを定期的にメールで送ることをしたいと思います。
とはいえ、昨今のスマートフォンは、指先一つで天気予報を見ることができ、わざわざ
メールで送信する意味ってどこにあるのか・・・。いや、きっとどこかで役に立つような・・。

small_232678770
photo credit: chrn via photopin cc

1.先ずは復習。データが取得できるか、試してみましょう。
[bash] # wget -q -O – http://weather.livedoor.com/forecast/webservice/json/v1?city=260010 | jq ‘.forecasts[]|.date,.telop,"最高気温->",.temperature.max.celsius,"最低気温->",.temperature.min.celsius’
"2014-12-12"
"曇時々晴"
"最高気温->"
"12"
"最低気温->"
null
"2014-12-13"
"晴時々曇"
"最高気温->"
"8"
"最低気温->"
"2"
"2014-12-14"
"曇時々晴"
"最高気温->"
null
"最低気温->"
null
[/bash] 2.取得できましたね。では、これをメールにしてみましょうか?。

shellのソース(tenki.shとしました。)
[bash] #!/bin/bash
export LANG=ja_JP.UTF-8

echo "MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
X-Priority: 3
Subject:天気予報
From: 送り元@
To: 送り先@

`wget -q -O – http://weather.livedoor.com/forecast/webservice/json/v1?city=260010 | jq ‘.forecasts[]|.date,.telop,"最高気温->",.temperature.max.celsius,"最低気温->",.temperature.min.celsius’`
" | /usr/bin/nkf -j | /usr/sbin/sendmail -t

exit 0
[/bash]

メールの抜粋
[text] 件名:天気予報

本文:
"2014-12-12"
"曇時々晴"
"最高気温->"
"12"
"最低気温->"
null
"2014-12-13"
"晴時々曇"
"最高気温->"
"8"
"最低気温->"
"2"
"2014-12-14"
"曇時々晴"
"最高気温->"
null
"最低気温->"
null

[/text]

3.あと、定期的に送るため、クーロンに以下のように設定しました。

[shell] 0 7 * * * /お好きなパス/tenki.sh
[/shell] としておきましょう。毎朝7時メールが来ます。

以上のようにすれば、(まだ編集の余地は大いにあるのですが。X-( ) メールで定期的に天気予報を受け取ることができます。

簡単ですが、今日はこの辺で・・。