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
と組み合わせることもできる。
必要な時に思いつけるようにしたい。
コメント