RaspberryPIで遊ぶときの環境つくり。
DHCP環境下でRaspberryPIを使っているとIPアドレスが分からなくて右往左往することが多い。ディプレイやキーボードをいつもつけているわけでもないし、電源が落ちてしまって再起動しちゃったとか、分からないからだ。
そこで、定番のリブートさせた後のIPアドレスをメールで通知してくれるようにした。
を参考にしつつ、sSMTP(sendmail)を入れて起動時にメールする仕組みにした。
やることは、
sSMTP(sendmail)の設置と設定
設定ファイル(ssmtp.conf)は、簡単だけれども、メールサーバーに仕様によって色々あるので試行錯誤が必要だった。専用のgmail作ろうかと思ったが、それはそれで面倒なので、レンタルサーバを使うこととした。
/var/log/mail.err みながらエラーを確かめつつ・・・。mail コマンドで送信ができることが確認できたら、次にIPを入れ込んで送信するshellスクリプトを作ります。
IPアドレスを付記したメール送信
参考にさせていただいたものからほぼ頂いてshellスクリプトにした。
!#/bin/bash
ip_add=$(hostname -I | cut -f1 -d' ')
title="$(hostname) restarted"
echo $ip_add | mail -s "$title" <mail address>
これで何度かテスト。なお、これだと複数IP持っていると最初の一つしか送られてきませんので注意。VNC接続だけだと今のところこれで十分。
毎回、起動時メール送信のし掛け
実現できる方法が複数ある。rc.localとかsystemdとか。rc.localが一般的なきがするけれども、調べるとbootでネットワーク起動のタイミングによっては正しい値が採取できない。設定弄るのもメンドイし、そんな大層な仕掛けでもない。そこで、cronでもできるらしいので採用。起動時にネットワークが立ち上がるまで待つためにsleep 30(sec)入れておいた。
cronなら後で一日一回メールといった設定追加も簡単。
!#/bin/bash
sleep 30;
ip_add=$(hostname -I | cut -f1 -d' ')
title="$(hostname) restarted"
echo $ip_add | mail -s "$title" <mail address>
これもテストをした後、cronに登録。
@reboot 指定でOK。
自動起動の仕方とその比較です。勉強になります。
というわけで、再起動したらIPアドレスの通知メールが来るようになりました。
意外とsSMTPの設定で手間取った。