定期送信 mydns
Raspberry PiからMyDNSに定期的にIPアドレスを送信するには、IPアドレスを通知するシェルスクリプトを作成し、Linuxのスケジュール管理機能である「cron」を使って自動実行するのが最も簡単で確実です。
具体的な手順は以下の通りです。
1. 通知用のシェルスクリプトを作成する
まずは、MyDNSの通知用URLにアクセスするスクリプトを作成します。IPv4とIPv6の両方に対応させておくと安心です。
ホームディレクトリなどに mydns_update.sh というファイルを作成します。
bash
nano ~/mydns_update.sh
コードは注意してご使用ください。
ファイルが開いたら、以下の内容を貼り付けます。mydns999999 と password の部分は、ご自身のMyDNSのマスターIDとパスワードに書き換えてください。
bash
#!/bin/bash
# MyDNSのログイン情報を設定
MID="mydns999999"
PASS="password"
# IPv4アドレスの通知
wget -O - "https://$MID:$PASS@ipv4.mydns.jp/login.html" > /dev/null 2>&1
# IPv6アドレスの通知 (不要な場合は削除してください)
wget -O - "https://$MID:$PASS@ipv6.mydns.jp/login.html" > /dev/null 2>&1
コードは注意してご使用ください。
保存して閉じるには、Ctrl + O、Enter、Ctrl + X の順にキーを押します。
2. スクリプトに実行権限を与える
作成したスクリプトをプログラムとして実行できるように権限を変更します。
bash
chmod +x ~/mydns_update.sh
コードは注意してご使用ください。
3. cronを設定して定期実行する
タスクスケジューラー(cron)を設定して、スクリプトが定期的に自動実行されるようにします。
設定画面を開くために以下のコマンドを実行します。
bash
crontab -e
コードは注意してご使用ください。
(初回実行時はエディタの選択を求められるため、使いやすい 1. /bin/nano を選んでください)
ファイルの最下行に、以下の設定を追加します。
text
0 * * * * /home/pi/mydns_update.sh
コードは注意してご使用ください。
※ ユーザー名が pi ではない場合(最近のRaspberry Pi OSなど)は、/home/ユーザー名/mydns_update.sh に書き換えてください。
💡 実行間隔の目安
上記の 0 * * * * は「1時間に1回(毎時0分)実行する」という意味になります。
MyDNSは長期間通知がないと登録が削除されてしまいますが、IPアドレスが変わったときにも追従できるよう、1時間に1回〜数時間に1回程度の頻度で通知を設定するのが一般的です。
設定が完了したら、保存してエディタを閉じます。
4. 正しく通知されているか確認する
設定後、手動でスクリプトを動かしてテストしてみましょう。
bash
~/mydns_update.sh
コードは注意してご使用ください。
実行後、MyDNSの公式サイトにログインし、「LOG INFO(通知履歴)」を確認してください。ご自身のRaspberry Piがある環境のグローバルIPアドレスと、アクセスした日時が記録されていれば成功です。