2020 年度 OSS リテラシ 3 : ラズパイを設置する前の作業 (1)

スクリプトの自動起動

ラズパイを起動したときにセンサーからデータを取得してサーバに送るスクリプトを 自動的に起動するようにする. 以下の例ではホームディレクトリに置かれた sensor.sh を起動する方法である. 起動したあと, 2 分ほど時間を開けてからスクリプトを実行する.

$ crontab -e

  (末尾に追加)
  @reboot  sleep 120; bash sensor.sh

crontab を設定したのちにラズパイを再起動し, 以下の 2 点を確認する.

  1. ラズパイで ps aux コマンドを用いて sensor.sh が実行されていることを確認する
  2. VM のデータベースに観測値が追加されていることを確認する.

スクリプトの調整

今回は 3 名で 1 チームとする. チーム内で代表者を決め, 代表者のサーバに全部のデータを送るよう各自のスクリプト (sensor.sh) を調整する. 以下のスクリプトの例では変数 url1 に代表者のサーバの URLを設定し, そこへ curl コマンドを用いてデータを送信している.

また, 今回は念のために教員のサーバにもデータを送って欲しい. 以下のスクリプトの例では変数 url2 に教員のサーバの URLを設定している.

#/bin/bash
...(略)...
url1=iot-YY.epi.it.matsue-ct.jp/~herohero/php/monitoring.php  #代表者のサーバ (YY, herohero は適宜変更のこと)
url2=iot-50.epi.it.matsue-ct.jp/~hogehoge/php/monitoring.php  #教員のサーバ (修正の必要はない)
...(略)...
do
  sec=`date +"%S"`
  if [ $sec = "00" ] ; then
    ...(略)...
    curl -u user:passwd "https://$url?hostname=$hostname&time=$time&temp=$temp&humi=$humi&lux=$lux"  # 自分のサーバに送る
    curl -u user1:passwd1 "https://$url1?hostname=$hostname&time=$time&temp=$temp&humi=$humi&lux=$lux"  # 代表者のサーバに送る
    curl "https://$url2?hostname=$hostname&time=$time&temp=$temp&humi=$humi&lux=&lux" #教員のサーバに送る. 教員のサーバはパスワードをかけていない.
  fi
  sleep 1
done

設定が終わったらラズパイを再起動し, 以下の 2 点を確認する.

  1. ラズパイで ps aux コマンドを用いて sensor.sh が実行されていることを確認する
  2. 代表者の VM のデータベースに観測値が追加されていることを確認する.