サーバーは借りてるけど、ドメインは無料…そんな私向けの備忘録です(笑)
前提条件
- 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を設定したら通知は不要」という方法をご存知の方がいらっしゃいましたら、ご連絡お待ちしております♪
つまんない記事ではりますが、誰かのお役に立ちましたら。。。