設定をtypoしないための知恵

システムの保守屋をやっていると、設定を行うことが多いが、特に記述系の設定はtypoすることが多いものだ。本来は「記述誤りを検出するための仕組み」をシステムが備えているべきだが、とかく保守性というものは開発者にとってプライオリティが低い。

そこで、記述部位別にtypoを検出するための方法を記載したいと思う。すべて基本的なことだが、基本を徹底するのはむずかしいとジェド・豪士だか平賀・キートン・太一も言っていた。

  • 前提条件

まず、記述誤りを防ぐために守るべきことは、設定値を入力する時に注意することより、設定後の値を出力し、その値を検証することで誤りを見つけることだ。コピペで設定してもいいが、設定後の値をコピペして検証することで、設定誤りは検出できる。
できれば、変更する可能性がある設定値については「すべてテキスト出力」できるような仕組みを作っておいて、設定変更前と変更後でdiffできるようにするのが望ましいが初回設定時にはあまり役に立たない。

  • フォルダの記述

フォルダの記述を誤らないためには、記述した後に設定値を「エクスプローラのアドレスバー」に貼り付けてENTERすることだ。そのフォルダが表示されれば、少なくともそのフォルダは存在する。

  • ファイルの記述

ファイルの記述を誤らないためには、上記方法もいいが、ファイルが拡張子登録されていないテキストファイルである場合は

notepad ファイル名

コマンドプロンプトなどで実行すれば、開けるかどうか確認できる。

設定後の値をコピーして、

ping IPアドレス

を実行すれば、少なくとも記述したIPアドレスが存在するかどうかは確認できる。
そのIPアドレスが何のサービスのためのIPアドレスかわかっていれば、TCPベースであれば

netsh diag connect iphost IPアドレス サービスを提供するポート番号

で該当のサービスを提供しているサーバか確認できる。

  • 自サーバのサービス提供ポート記述

該当のサービスを再起動した後、記述したポートをコピーし、

netstat -nao | find ポート番号

を実行しLISTENINGかESTABLISHEDで正しく提供できているか確認できる。
また、結果に出力するPIDをタスクマネージャ上の(デフォルト非表示の)PIDと比較することで、自分が意図したサービスがポートをLISTENしていろことを確認できる。

  • HOST名記述

設定後の値をコピーして、

ping HOST名

を実行すれば、HOST名とIPアドレスが正しく解決されているか確認できる。

  • netbios名記述

設定後の値をコピーして、

ping netbios名

を実行すれば、netbios名とIPアドレスが正しく解決されているか確認できる。

lmhostsの記述を変えたような場合、必ず

nbtstat -R

を実行した後、pingすること。