Skip to content

smileygames/mydns-ip-update

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mydns-ip-update (IPv6 & マルチドメイン対応)

MyDNS®JP → https://www.mydns.jp/

オブジェクト指向化しました。(独自解釈)→ https://smgjp.com/mydns-ip-update_object/

マルチDDNSに対応しました → https://github.com/smileygames/dipper


概要

  • このスクリプトは、MyDNSへの自動通知を目的としています。
  • 使用する環境はAlmaLinuxで、言語はBashです。
  • スクリプトは複数のファイルで構成されており、それぞれの役割や目的があります。
  • configディレクトリ内の設定ファイルに基づいて動作します。
  • IPアドレスの更新やチェックを定期的に行います。

動作に関しては、簡易デバッグテストしかしてないので、ご了承ください。

固定IPの場合、confファイルでIPV4_DDNS及びIPV6_DDNSを「off」にしておいてください。(余計な処理をしなくなる)


ワンクリックインストールスクリプト

インストールコマンド

bash <( curl -fsSL https://github.com/smileygames/mydns-ip-update/releases/download/v2.08/install.sh )

▼最初に初期設定を行ってください。

installのたびにコンフィグファイルが初期値に戻ってしまうのも面倒なので ユーザー側でコンフィグファイルを作成してもらい、上書きインストールでも変更しないようにしました。 但し、uninstallコマンドを実行すると消えます。

sudo cp -v /usr/local/mydns-ip-update/config/default.conf /usr/local/mydns-ip-update/config/user.conf
sudo vim /usr/local/mydns-ip-update/config/user.conf
MYDNS_ID[1]=""
MYDNS_PASS[1]=""
MYDNS_DOMAIN[1]=""

をご自分のMyDNSの情報に書き換えて、先頭の#を削除してください。

編集が終わったら権限を変更しておきます。(IDとPASSを管理したファイルの為)

sudo chmod 600 /usr/local/mydns-ip-update/config/user.conf

▼次にサービスの起動です。

sudo systemctl enable mydns-ip-update.service --now

アンインストールスクリプト

▼アンインストールコマンド

bash <( curl -fsSL https://github.com/smileygames/mydns-ip-update/releases/download/v2.08/uninstall.sh )

設定変更時

コンフィグファイルの内容を変更した際は、 サービスを再起動しないと反映されないので注意です。

sudo systemctl restart mydns-ip-update.service

マニュアルインストール方法

ダウンロード及び権限の変更

Ver="2.08"
wget https://github.com/smileygames/mydns-ip-update/archive/refs/tags/v${Ver}.tar.gz -O - | sudo tar zxvf - -C ./
sudo mv -fv mydns-ip-update-${Ver} mydns-ip-update
sudo cp -rv mydns-ip-update /usr/local/
sudo rm -rf mydns-ip-update
sudo chmod -R 755 /usr/local/mydns-ip-update/bin

サービス作成

sudo vi /etc/systemd/system/mydns-ip-update.service
[Unit]
Description=mydns-ip-update

[Service]
Type=simple
Restart=on-failure
WorkingDirectory=/usr/local/mydns-ip-update/bin
ExecStart=/usr/local/mydns-ip-update/bin/ip_update.sh

[Install]
WantedBy=network-online.target

デーモンリロードをして追加したサービスを読み込ませて起動させる

sudo systemctl daemon-reload
sudo systemctl enable mydns-ip-update.service --now

スクリプト構成

自分なりの解釈のオブジェクト指向もどきで作り直しました。

言語はそのままシェルスクリプトです。

機能は変わりません。

mydns-ip-update:スクリプト構成図 (2)