柄スタイル

ここは文系のオッサンがITに立ち向かう所

Raspberry Piに自身の状態を定期報告させる

      2016/05/25

RaspberryPiに自分の状態を一日一回定期報告させるようにします。稼働時間、ディスク使用量、CPU温度、電圧を自動取得して、gmailで定期的に送信させます。

稼働時間を表示する

稼働時間を表示するコマンド

$ uptime

入力すると次のように表示されます。


23:14:21 up 54 days, 15:15, 1 user, load average: 0.17, 0.73, 0.55

  現在時刻は23時14分21秒、稼働時間54日15時間15分、ユーザー数1、平均のシステム負荷はほぼ0となっています。

ディスク使用量を表示する

$ df -h

入力すると次のように表示されます。

ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        5.6G  3.7G  1.7G   70% /
devtmpfs         237M     0  237M    0% /dev
tmpfs             49M  252K   48M    1% /run
tmpfs            5.0M     0  5.0M    0% /run/lock
tmpfs             97M   68K   97M    1% /run/shm
/dev/mmcblk0p5    60M   20M   40M   33% /boot

5.6GBのディスク容量のうち3.7GB、70%を使っているのがわかります。ちなみにSDカードは8GBを使用しています。

CPU温度を表示する

$ vcgencmd measure_temp

入力すると次のように表示されます。

temp=45.5'C

  真夏には55℃に達することもあります。

電圧を表示する

$ vcgencmd measure_volts

入力すると次のように表示されます。

volt=1.2000V

  この数値はいつも変わりません

各コマンドをまとめてシェルスクリプトにする

コマンドを並べただけの簡単なシェルスクリプトを作成し、state.sh と名前をつけて保存します。

#!/bin/sh
# 起動時間
uptime

# ファイルシステム
df -h

# cpu温度
vcgencmd measure_temp

# 電圧
vcgencmd measure_volts

実行します。

$ sh state.sh

  結果

 00:00:01 up 59 days, 16:00,  0 users,  load average: 0.01, 0.25, 0.39
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        5.6G  3.7G  1.7G   70% /
devtmpfs         237M     0  237M    0% /dev
tmpfs             49M  252K   48M    1% /run
tmpfs            5.0M     0  5.0M    0% /run/lock
tmpfs             97M   68K   97M    1% /run/shm
/dev/mmcblk0p5    60M   20M   40M   33% /boot
temp=44.4'C
volt=1.2000V

メールで送るようにする

Muttを利用してメールを送信する設定をします

Muttのインストール

Muttはテキストベースのメールクライアントです。

 sudo apt-get install mutt 

Muttの設定

/home/pi/bin/mutt.conf を編集します

set charset="utf-8"
set send_charset="us-ascii:iso-2022-jp"
set from = "hoge@gmail.com"
set realname = "ラズパイサーバー"
set smtp_url = "smtp://hoge@smtp.gmail.com:587/"
set smtp_pass = "hoge"

送信してみる

$ sh /home/pi/state.sh | mutt -F 
/home/pi/bin/mutt.conf -s "定期報告" hoge@gmail.com

state.shの結果をhoge@gmail.comへ「定期報告」というタイトルを付け、mutt.confの設定で送信します

定期的にメールを送信する

cronを設定してRaspberry Piから定期報告するようにします

$ crontab -e
#毎日0時に定期報告を実行する
 00 0 * * * sh /home/pi/state.sh | mutt -F /home/pi/bin/mutt.conf -s "定期報告" hoge@gmail.com

  定期報告の頻度はRaspberryPiの使用目的によって変わると思います。今回は一日一回の生存確認としました。

2016-05-23追記

メッセージの簡略化と見やすさ変更

ディスクドライブの使用量と見やすさを少し変更します。

#!/bin/bash
#
#稼働時間
echo 稼働時間
uptime
echo

#wlan0のipアドレスを表示する
echo IPアドレス `sudo ifconfig wlan0 | grep 'inetアドレス:' | sed -e 's/^.*inet アドレス://' -e 's/ .*//'`;
echo

#ディスク・ドライブの使用量
echo ドライブの使用量
df -h Documents/
echo

#CPUの温度を表示する
echo CPU温度 `vcgencmd measure_temp` 
echo

#電圧を表示する
echo 電圧 `vcgencmd measure_volts` 

結果


稼働時間
 22:40:26 up 167 days, 22:46,  4 users,  load average: 0.33, 0.30, 0.25

IPアドレス 192.168.0.8

ドライブの使用量
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         13G  4.4G  7.4G   38% /

CPU温度 temp=54.6'C

電圧 volt=1.2000V

すっきりとして少し見やすくなりました。

 - Raspberry Pi , ,