DNSレコードの反映が待ちきれない時の気休め
ブラウザなどで更新を繰り返すのは面倒だと思う。
まあ、1日待つのが正解だとは思うが、気になるときもあるのでシェルでウォッチすればいいと思いついた。
環境はmacos。
watchコマンド
まずは、watchコマンドのインストール。homebrewからインストールする。
$ brew install watch
インストールできたら、watchコマンドの使い方を確認。
$ man watch
# オプションについてはこの辺を使えば十分だろう。
-d, --differences [permanent]
Highlight the differences between successive updates. Option will read optional argument that changes
highlight to be permanent, allowing to see what has changed at least once since first iteration.
-n, --interval seconds
Specify update interval. The command will not allow quicker than 0.1 second interval, in which the
smaller values are converted. Both '.' and ',' work for any locales.
-dで差分を強調表示。-nで実行間隔の指定。watch [options] commandで指定した間隔でcommandを定期実行する。
間隔を指定しないと2秒ごとになる。
digコマンド
watchで実行するコマンドは、dig。これは、DNSのクエリを行ってくれる。
-tオプションでレコードのタイプを指定できる。デフォルトはAレコード。
$ dig -t txt <some_domain>
なら、<some_domain>のTXTレコードを聞きに行く。
DNSレコードを新しく設定した時は、正しく問い合わせても、期待したレコードはなく、空となる。反映されれば空でないレコードが返る。
組み合わせる
watchでdigを定期実行すれば、DNSの反映を監視できる。上の例なら、
$ watch -n 60 -d 'dig -t txt <some_domain>'
このようにすれば、1分ごとに確認してくれる。TTLは大体3600秒なので、もっと間隔は空けてもいい。
便利なwatch
watchは大雑把な監視に向いている。curlやgrepと組み合わせることもできる。
必要な時に思いつけるようにしたい。


コメント