Route 53でcli53を使ったDynamic DNS
Route 53でDDNSというとroute53DynDNS.bashを使った例を多く見かけるのだが、自分の手元では正常動作しないし読めた物ではない感じの作りなので、cli53を使って極めて簡単に書き直した。
AWSインスタンスでの例はこちらにあるのだが、ここではAWSではない自宅鯖のDDNSに用いるのでEC2関係の所は参考にしない。
cli53をインストール
sudo pip install cli53
.botoにIDとKeyを設定
こんな感じの奴を作る
[Credentials] aws_access_key_id = <your_access_key_here> aws_secret_access_key = <your_secret_key_here>
update53.shを作成
#!/bin/sh ZONE=example.com RECORD=www DAT=/tmp/update53.dat if [ -f $DAT ]; then PREV=`cat $DAT` else PREV=`cli53 rrlist $ZONE|grep ^$RECORD|awk '{print $5}'` fi CUR=`wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'` echo $CUR > $DAT if [ "$PREV" == "$CUR" ]; then exit 0 fi cli53 rrcreate $ZONE $RECORD A $CUR --ttl 3600 --replace
crontabに適当にインストール
*/5 * * * * /home/syuu/update53.sh