memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

コンプガードコントロールセンターの管理マシンリストを作成するRubyスクリプト

コンプガードコントロールセンターというPC管理ソフトウェアを利用しています(積極的に利用しているというより利用せざるを得ない環境という意味)。管理するPCをGUIで登録してリモートでPCの起動・停止などができます。


ある用事でこのソフトウェアで管理しているPC一覧が必要となったのでエクスポート機能がないか探したところ。。。ない。ないのです。。。セキュリティ上の配慮なのかもしれないが。。。困りました。


いろいろと探してみると、このソフトウェアの実行結果がログファイルに書き出されることがわかりました。ログファイルにはPCの接続確認や起動・停止の実行結果が記録される模様です。ファイルを消してもソフトウェアには影響がないようなので、一旦、削除してから「接続確認」を実行してみると、管理PCに対する実行結果(コンピュータ名、IPアドレス)がログファイルに記録されることがわかりました。←このあたりはこのソフトウェアを利用した経験がないと何を言っているのかわからないかもしれませんが。。。その程度の話ということで流してください。


ということであとはプログラムの出番。Rubyで書いてみました。あまりにも”しがない”プログラムですが、もしかするとまた同じ用件が発生するかもしれません。最近の長期記憶はWebに頼っていますので自分のために記録しておきます。aaa.txtというのはログファイルの内容を転写したテキストファイルのことです。正規表現、楽ちん。邪魔な終端の改行切りもRubyでは簡単にコーディングできます。

s = ""
File.open("aaa.txt").each do |e|
  if e =~ /^CLIENT.*NAME/
    s = e.slice(26,100).chomp!
  end
  if e =~ /^CLIENT.*IP/
    p s + ", " + e.slice(26,100).chomp!
  end
end


ちなみにログファイルは以下のようなフォーマットになっています。


DATE & TIME : 12/24/2009 12:46:47:882
CLIENT MACHINE NAME : xxxxxxxxxx
CLIENT MACHINE IP : xxx.xxx.xxx.xxx
PRODUCT NAME : CornerStone-JP
PRODUCT VERSION : x.x.xxxx
LAST COMMAND : Server Request Verify Connection
LAST RESULT : Client Not Connected

                                                                                                                                                        • -

以下、登録台数分の繰り返し。。。