【Raspberry Pi監視】監視プログラムを作成する

                 
Linux
この記事は約4分で読めます。
  1. 【Raspberry Pi監視】Raspberry PiでGmailを送信できるようにする
  2. 【Raspberry Pi監視】監視プログラムを作成する(この記事)
  3. 【Raspberry Pi監視】cronを設定する

前回の記事で、Raspberry PiからGmailを使ってメールを送信できるようになりました。

続いてメールの本文となる監視内容を作成するプログラムを作成していきます。

関連記事:linuxでテキスト編集(1)

                 

RasPi Checkアプリの項目を見てみよう

RasPi Checkでは次の項目が確認できます。

項目名 内容 今回の監視対象
OVER CLOCKING Raspberry Piに関する項目(CPU温度/周波数など)
SYSTEM 稼働時間/メモリー/ディストリビューションなど
NETWORK ネットワークインターフェース情報 ×
DISK USAGE ディスク使用状況
PROCESSES プロセス情報 ×

NETWORKとPROCESSESに関する情報は今回はスルーします。

続いて各項目の情報を取得、成形していこうと思います。

OVER CLOCKING

OVER CLOCKINGでは、CPUの温度、周波数、電圧、ファームウェアバージョンを表示しています。

Raspberry Piではvcgencmdというコマンドでこれらの情報を取得することができます。

vcgencmdの使い方、オプションは以下のページに記載されています。
https://www.raspberrypi.org/documentation/raspbian/applications/vcgencmd.md

基本的な使い方は次の通り。

 

取得したい情報をヒアドキュメントでリスト化し、whileコマンドで連続実行するようにしました。

$tmp-vcgenをcatした結果↓

続いて、取得した情報をawkを使って、RasPi Checkっぽい表記に整形していきます。

$tmp-ovをcatした結果↓

それっぽくなりました。

OVER CLOCKING項目の完成です。

                 

SYSTEM

続いてSYSTEMの項目を作成します。

SYSTEM項目はそれぞれ以下のコマンドで取得できます。

項目名 取得コマンド
Startup uptime
Average load uptime
Main memory free -h
Swap memory free -h
Distribution cat /etc/issue
Serial No cat /proc/cpuinfo
Last refresh uptime -s

OVER CLOCKING項目で使用したvcgencmdのようなコマンドは使用せず、linuxの標準コマンドのみで取得できる情報でした。

以下のようにして情報を取得、整形しました。

uptimeの出力結果は、起動から1時間未満/1日未満/1日以上でフィールド数が変化することが分かったので、フィールド数によって条件を分岐できるようif文を使いました。

uptimeの出力結果は、起動から1時間未満/1日未満/1日と1時間未満/1日と1時間以上で、フィールド数が11/10/12/13と変化することが分かったので、if分を使って処理を変えることにしました。

$tmp-syをcatした結果↓

SYSTEM項目の完成です。

 

DISK USAGE

この項目は一番簡単でした。

ディスクの空き容量を確認できるdfコマンドにオプションhを付けて実行した結果を出すだけです。

ただし、localeが日本語になっていると出力結果に日本語が混ざるので、環境変数を設定しました。

上記の点に気を付けてプログラムを書きます。

 

                 

メール送信

続いて、取得した情報である$tmp-ovと$tmp-syと$tmp-dfhをメール本文に貼り付けて送信します。

これでメールが送信されます。

受信メール

作成したプログラムを実行すると次のようなメールが届きます。

想定通り動くことが確認できたので、次はcronを設定していきます。

次の工程:【Raspberry Pi監視】cronを設定する

コメント

タイトルとURLをコピーしました