DynDNS用のアップデートスクリプト

世の中にはDiCEとかddclientとか多機能なダイナミックDNS(DDNS)のクライアントツールがあるけれど、DDNSの為にそんな大げさなツールをつかう気にならない。
という事で、DynDNS専用に短めのアップデートスクリプトを作ってみた。

#!/bin/sh

OLD_IP=`cat /tmp/ipaddress`
NOW_IP=`wget -O - http://208.78.68.70 | sed s/[^0-9.]//g`

  if [ "$OLD_IP" != "$NOW_IP" ]
  then
    wget -O /dev/null http://USER:PASSWORD@204.13.248.112/nic/update?hostname=????.ath.cx
    echo $NOW_IP > /tmp/ipaddress
  fi

USER,PASSWORDの所に自分のパスワード、URL後ろのホスト名を入れて完成。あとはcronで5分おきぐらいに実行してやればおk

しかしこのままではIPが数日変わらなかった時にDynDNSが未使用と判断してホスト名が削除されてしまう。

そこで、cronを使って、/tmp/ipaddress を1日1回クリアしてやる。こうする事でIPが変わらなくても1日1回は更新するようになる。

ちなみにこのスクリプトは例外処理とか面倒な事を全然考えいないので、使う時は自己責任で使ってください。

◆設置方法
※NAT環境のネットワークを想定しています。

1.さっきのスクリプトを /usr/sbin/dyndns_update として保存。
この時自分の環境に合わせてユーザー名,パスワード,ホスト名を書き換えておく事

2.実行権限を与える

# chmod +x /usr/sbin/dyndns_update

3.cronへ登録

# crontab -e

こんな具合に追加

*/5 * * * * nice -n 19 /usr/sbin/dyndns_update
57 23 * * * nice -n 19 echo "" > /tmp/ipaddress                              


以上で完了です。


ちなみに自分はこのスクリプトをOpenWrt上で実装しています。
やっぱりこの程度の処理なら単純なのが良いよ。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。