概要
複数サーバーの設定差分を確認したいとき、
- 手作業で1台ずつ確認する
- scpでファイルを集める
- フォーマットを揃える
といった作業は手間がかかります。
しかし、TeraTermのログ機能とマクロ機能を使うと
比較用のファイルが自然に揃う状態を作ることができます。
ログ設定
この方法は、TeraTermのログ設定が前提になります。
TeraTermの設定→その他の設定→ログで、標準ログファイル名にホスト名やIPアドレスを付けるように設定します。
また、同じタブの「自動的にログ採取を開始する」も有効にしておきます。
例:
%a.log
または:
%h_%Y%m%d_%H%M%S.log
この設定にしておくことで、
接続したサーバーごとに、ログファイルがホスト名付きで自動的に分割されて出力されます。
マクロの準備
次に、TeraTermのマクロを作成します。
以下をテキストエディタで書いて、適当な名称で保存します。
拡張子は.ttlにしてください。
実行するコマンドは確認したい内容に応じて変更します。
sendln 'cat /etc/ssh/sshd_config'
sendln 'exit'
実行方法
準備ができたら、あとは同じ操作を各サーバーで繰り返すだけです。
やることはシンプルで、
TeraTermで処理を行いたいサーバーに接続します。
root権限が必要ならsuしてください。
それから、Teratermのメニューでコントロール→マクロを選択して、先ほど保存したマクロファイルを選択します。
選択すると、すぐにマクロが実行され、接続が終了します。
catの結果がそのままログに出力され、このサーバーのログが作成されます。
あとは確認したいサーバー全てに対して、次の操作を繰り返します。
①ログイン
②マクロ実行
例えば3台あれば、それぞれに接続して同じマクロを実行すると、
192.168.1.10.log
192.168.1.11.log
192.168.1.12.log
のように、サーバーごとのログファイルが揃います。
これらのログはすべて同じフォーマットで出力されるため、
そのままWinMergeなどで比較できます。
どの設定が違うのかが一目で分かるようになります。
ログイン処理を自動化する
サーバー台数が多い場合は、 1台ずつログインしてマクロを実行するのも負担になります。
その場合は、ログイン処理もTeratermのマクロ化して、BAT等で呼び出しをまとめることで、一括処理ができるようになります。
- 接続
- マクロ実行
- 切断
をサーバーごとに繰り返すことで、
ログファイルが自動的に揃います。
実際の処理用のマクロは1つ用意するだけで済むため、
作業がシンプルになります。
実際の処理サンプル
Teratermによるログイン処理の自動化は、以下の記事で説明しています。
興味のある方はご覧ください。
TeratermによるLinuxの自動操作例は、以下の記事にまとめています。