smnhooi’s blog

下手な殴り書きをひたすら書いていきます。文章がお見苦しかったらすみません。

Raspberry Pi でグローバルIP通知

まずOSの立ち上げを再度行います。
次使うのはJessie Lite版です。 通常版を使ったらいきなりGUIで立ち上がってしまい重かったのでLiteにしました。(NASは好んでGUI使ってるのに・・・)

サクッとSSHを有効にしてIPを固定します。
ちなみに初期パスワードが設定されていて、"raspberry"と打ってログインします。

IP固定方法がこのバージョンから変わっており、以下のファイルを編集します。

sudo nano /etc/dhcpcd.conf 

このファイルの末尾に以下を追加。

interface eth0
static ip_address=192.168.15.4/24 
static routers=192.168.15.1 
static domain_name_servers=[DNS Name] 

これで再起動したら固定にできました。

続いてターミナルからGmailを送信できるようにします。
以下をインストール

sudo apt install exim4

続いて設定を行います。

sudo dpkg-reconfigure exim4-config

基本的にデフォルトでいいですが、
## IP address or host name of the outgoing smarthost:
と出てきた時だけ「smtp.gmail.com::587」を記入します。

続いてアカウントの設定です。

sudo nano /etc/exim4/passwd.client
gmail-smtp.l.google.com:user_name@gmail.com:my_passwd
*.google.com:user_name@gmail.com:my_passwd
smtp.gmail.com:user_name@gmail.com:my_passwd

これで設定を反映します。

sudo update-exim4.conf

しかしこのままではGoogle側ではじかれてしまいました。
Googleアカウント→セキュリティ→安全性の低いアプリのアクセス
の設定をオンにします。

これでテスト送信してみます。

mail -s "mail test" to_address@hoge.hoge
test [Ctrl+D]
Cc: [Enter]

少し調べただけであっさり送れてしまえました。

続いて端末上でグローバルIPを取得します。

curl ifconfig.io

以前は別のサーバーを使っていましたが今は使えないようです。
前組んでいたシステムが突然動かなくなったのはこのせいか・・・・・

とりあえずスクリプトを組みましょう。
以下のものを参考にさせていただきました。
Raspberry Piで自宅のグローバルIPをメールで通知 - ひゃまだのブログ

スクリプトはほぼ拾ってきたもののままなので割愛しますがつまり、

  1. 今のグローバルIPを取得する
  2. ファイルで保存されている前のグローバルIPを読み込む
  3. 両者を比較する
  4. 不一致だったら保存してメールで送信

をするスクリプトを組めばよいです。

そしてcrontabで定期実行できるようにします。
ついでに再起動しておきます。

crontab -e

5 * * * * /home/pi/tools/send

sudo service cron restart

ちゃんと動いてはいるみたいです。

まあそんなに頻繁にIPは変わらないし、出先でいじりたくなることはそんなにないんですけどね。