技術

お名前.comのレコードを更新するShellScriptを書く

chatagiriです。過去記事。

自宅サーバ上でこのサイト他色々ものを動かしています。

しかし、一般的な光回線 + 非固定IP + 一般的なルータ + NUC な環境で動作させている都合上、停電したり熱にやられたり何だりでルータorモデムが再起動するとプロバイダから降ってくるGlobalなIPが変わってしまうことがあります。

上記原因でIPが変わるたびにお名前.comのコンパネ上で1(サブ)ドメインずつ丹精込めてレコードを変更する作業はもうツライので、GlobalIPを確認してお名前.com上のレコードを更新してくれるshell scriptを書きました。

cronで回すようにすれば初期のレコード設定以外は自動化できるので大変良いです。

#!/bin/bash

SUBDOMAIN="$(cat << EOF
test1.example.com # ここに更新掛けたいサブドメイン(例: test.example.com)
test2.example.com # 複数行も可
                  # 空行を入れると親ドメインそのもの(例: example.com)
EOF
)"

ONAMAE_USERID=""    #ここにお名前ID(7ケタ)
ONAMAE_PASSWORD=""  #ここにログインパスワード
ONAMAE_DOMAIN=""    #ここに契約ドメイン(例: example.com)


while read SUBDOMAINS
do
cat << EOF | openssl s_client -connect ddnsclient.onamae.com:65010 -quiet ; done < $SUBDOMAIN
LOGIN
USERID:"$ONAMAE_USERID"
PASSWORD:"$ONAMAE_PASSWORD"
.
MODIP
HOSTNAME:$SUBDOMAINS
DOMNAME:"$ONAMAE_DOMAIN"
IPV4:$(curl -G inet-ip.info)
.
LOGOUT
.
EOF

あとは実行権限つけて叩いてみてください。動かなかったゴメンナサイ。

ちなみにchatagiriはお名前ドットコムからGoogle Cloud DNSに移行しました。APIフレンドリーな感じで更新できたりするので非常に便利です。

開くたびにドメイン更新しろ!!!画面も表示されないですしね。

-技術

© 2022 diary.log