Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@bvlion

シェルでMyDNSにIP通知

サーバーは借りてるけど、ドメインは無料…そんな私向けの備忘録です(笑)

前提条件

  • DNSはMyDNSを使っている
  • サーバーは固定IP
  • Linuxを使っている

コマンド

#!/bin/bash

while :
do
    status=`curl -o /dev/null -w %{http_code} -s --user $user:$pass www.mydns.jp/login.html`
    if [ $status -eq 200 ]; then
        break
    fi
done

ちょこっと解説

while :

無限ループしてくれます。

curl -o /dev/null -w %{http_code} -s

「-o /dev/null」で出力を無効にします。
「-w %{http_code}」で出力をステータスコードにします。
「-s」はサイレントモードの指定です。
(多分…)

こんなシェルを作った経緯

MyDNSは、どうも固定IPを設定しても定期的に通知が必要なようです。
(メールが飛んできました。)
そこで当初、こんな簡易なシェルでやってました。

#!/bin/bash

curl --user $user:$pass www.mydns.jp/login.html

cronで月曜日と木曜日に流し、約2ヶ月は問題なく運用できてました。
ところがある日「IP通知してね」のメールが…
「え??やってますけど…」と思いcronのログを確認したところ、401エラーが∑( ̄□ ̄|||)
どうも正しいユーザー:パスワードを設定しても、たまにエラーになっていたようです。
(1週間以内に通知しておけばメールが来ないため、月曜日か木曜日が成功すればメールは来なかった。)
そこで、無限ループで200が返ってくるまで繰り返す…というシェルにしてみました。

最後に…

もし「MyDNSで固定IPを設定したら通知は不要」という方法をご存知の方がいらっしゃいましたら、ご連絡お待ちしております♪
つまんない記事ではりますが、誰かのお役に立ちましたら。。。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What is going on with this article?