-
別の開発マシンに rpm で導入した wget セットから wget を取り出し、これを WEBくんの /usr/sbin ディレクトリに入れます。
-
/root/ddoupdate.sh スクリプトを作成します。
パーミッションは 700 にします。
・(rootpw) には corega BAR SW-4P HG のルートパスワードを入れます。
・192.168.1.1 には corega BAR SW-4P HG の IPアドレスを入れます。
・(user)(password) には ddo.jp に登録したユーザー名とパスワードを入れます。
#!/bin/sh
wget -qO - http://root:(rootpw)@192.168.1.1/title.htm | grep '^ <td nowrap>' | grep -v 'IP' | sed -e 's|^ <td nowrap>||' -e 's|</td>||' > /root/ip_new
cmp /root/ip_new /root/ip_old > /dev/nul
if [ $? != 0 ] ; then
cp -f ip_new ip_old
wget -O - 'http://ddo.jp/dnsupdate.php?dn=(user)&pw=(password)'
fi
このスクリプトの動作説明です。
- wget で corega BAR SW-4P HG の保守画面より現在のグローバルIPアドレスを抽出し /root/ip_new に保存する。
- cmp で以前のグローバルIPアドレス ip_old と ip_new を比較する。
- 比較結果が同じであれば、ここで終了。比較結果が異なると、ip_old = ip_new とし、wget で ddo.jp 登録のグローバルIPアドレスを更新する。
構造的には、たった3ステップしかありません。
たぶん
世界一短いスクリプト
です。
copyright (c) hirokun
です。
-
crontab -e で編集し、以下の行を追加します。
10,25,40,55 * * * * /root/ddoupdate.sh > /dev/null
これで毎時10,25,40,55分にこのスクリプトを実行します。
-
グローバルIPアドレスが変わらなかったら ddo.jp へのグローバルIPアドレスを再登録しないのですが、この状態が1ヶ月以上続くと ddo.jp より(ダイナミックDNSサービスを長期に渡って使用しなかったとして)強制退会させられるようなので、crontab -e で次の行も追加しておいたほうが良いです。
15 2 10,25 * * rm -f /root/ip_old
これは、毎月10日と25日の2時15分に ip_old ファイルを消去します。
そうすると、その次の ddoupdate.sh スクリプト実行時(2時25分になります。)に強制的にグローバルIPアドレスを再登録します。