ドメイン失効してしまいました☆(ゝω・)vキャピ


お久しぶりです.この数週間で,書きたいことはまとまっていたんですが諸事情で更新できませんでした.
というのも,標題の通りでして, upasama.com の支払い不履行につき,ドメイン失効してしまいました.
# クレジットカードの番号が変わったためなんですが…

独自ドメイン失効というのは,管理者にとっては結構キツイ問題であり,
それを公にするのは,誰かに先を越されて取得されてしまうかもしれないというリスクがついているわけです.

私も初めて知ったんですが,ドメインの失効までって結構猶予があるみたいですね.
確かに,失効してから即開放することは考えにくいのでそりゃそうか.
ちなみにですが,この猶予期間中はサポート(というかサービスを提供している会社)に
お金を詰めば,ドメイン削除済みでも請戻してくれるらしいんですよ.
—–
参考:削除済ドメイン名のための「請戻猶予期間」 – JPNIC
—–
ちなみに, この交渉代理の料金,value-domain は3万強.どう考えても,お高い…

 

というわけで,再取得できるの待ってました.


前置きが長くなりました.
毎日 value-domain や お名前.com で状態確認をするのでもいいんですが,ものぐさな私には向きません.
そこで,監視スクリプト書いてみました.
おもいっきり自分仕様なので,転用できそうにもないですが…

◆ 要件と実装

1) whois の statusが変わったことを検知できる
$ whois upasama.com | grep “Status:” は不安
whois コマンド詳しくないので,戻り値を推測するのが面倒
-> 変化行が見えればそれで良いので diff -c の結果を見る
2) メールで通知してほしい,なんでもいいからすぐさま結果が欲しい
我が家は固定回線もないので 24時間365日監視はできない
 -> レンサバ上で動いたのでレンサバ上で実装
  サーバなら sendmail も簡単そうなのでメール通報できる
#デフォで使えた

コードは適当に,Continue しておきます.

◆ ちなみに

レンサバ:さくらインターネット(FreeBSDだった…)
ドメイン:VALUE-DOMAIN

 

スクリプトは,なんとなく動くのでこのまま使っていましたが,shell のお作法は知らないので怒られそうなことしてそうですね.

 

◆  届いたメールもおいておきますか

正直,自分の書いたスクリプトで検知できると思ってなかったので,
メールが飛んできたときは結構感動しました.
6/2 にドメインが開放され,私のスクリプトが 6/3 1:30 am の cron で検知したみたいです.
いや,この画像みたところで,なんも感動はないんですが…記念なので…
#アドレスが残念な感じ
screenshot
きたないおそーすは Continue…

◆ おそーす

##########################################
# check whois status 2014/05 tsu #
##########################################
#!/bin/sh

## 作業ディレクトリ
DIR=/hoge/tmp/script
## 前の状態の whois 結果
WHOIS_TMP_LOG=$DIR/whois_tmp.log
## 現状の whois 結果
WHOIS_LOG=$DIR/whois.log
## 適当にエラー用
ERRLOG=$DIR/err.log
## エラーのときのタイムスタンプ用
DATE=`LANG=C /bin/date`

## 比較用ファイルがなかったらエラーにして作っておくかー
if [ ! -e $WHOIS_TMP_LOG ]; then
echo "$DATE" > $ERRLOG
echo "$WHOIS_TMP_LOG not found." >> $ERRLOG
/usr/bin/touch $WHOIS_TMP_LOG
fi
## 念のために touch しておきますか
/usr/bin/touch $WHOIS_LOG

## 現状の whois を取得. LastUpdate が入ると diff るとき邪魔なのでそれっぽいとこ除外
### ちなみにこんなの -> >>> Last update of whois database: xxxxx UTC <<<
WHOIS=`/usr/bin/whois upasama.com | /usr/bin/grep -v "whois database" `
echo "$WHOIS" > $WHOIS_LOG

## 前回の whois と今回の whois を diff って,変更があった箇所の行数を数える
### 1行だけ変更があった場合,RESULT=2
RESULT=`/usr/bin/diff -c $WHOIS_TMP_LOG $WHOIS_LOG | /usr/bin/grep ^! | /usr/bin/wc -l`
echo $RESULT

## 複数行エラーなら status の変更と判断
### mail を送るスクリプトは別途用意
if [ $RESULT -ne 0 ] ;then
/bin/sh $DIR/mail.sh
fi

## 書き換え
/bin/cp $WHOIS_LOG $WHOIS_TMP_LOG

 

メール部分は, sendmail つかってそのまま送信しているだけです.
サーバ側での処理なのであまり深く考えずにコマンド叩いただけです.
ただ,ベタ貼りでアドレス貼ってるのであんまりよろしくないですね.
ちゃんと隠蔽すべきなんでしょうが…とりあえずドメイン更新がおわったので,
スクリプト撤去してこのタスクは完了です.