2020 年度 OSS リテラシ 3 : ラズパイを設置する前の作業 (1)
スクリプトの自動起動
ラズパイを起動したときにセンサーからデータを取得してサーバに送るスクリプトを 自動的に起動するようにする. 以下の例ではホームディレクトリに置かれた sensor.sh を起動する方法である. 起動したあと, 2 分ほど時間を開けてからスクリプトを実行する.
$ crontab -e (末尾に追加) @reboot sleep 120; bash sensor.sh
crontab を設定したのちにラズパイを再起動し, 以下の 2 点を確認する.
- ラズパイで ps aux コマンドを用いて sensor.sh が実行されていることを確認する
- 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 点を確認する.
- ラズパイで ps aux コマンドを用いて sensor.sh が実行されていることを確認する
- 代表者の VM のデータベースに観測値が追加されていることを確認する.