差分取得

NW機器に設定変更を施す際、作業前と後のコンフィグ差分を取得する必要があり、対象機器が大量になるとすこぶる面倒くさい。なので、その作業を簡略化するperlを書いてみた。といっても複雑なことをしているわけではなく、Windowsのコマプロで実行する差分取得ファイルの引数をperlで指定して実行するだけだったりする。

【前提】
 1.比較対象ログファイル名は「ホスト名_~.log」の形式。
 2.比較ツールは「TextDiffDsp」を使用。
 3.差分出力はエクセル形式。
 3.比較対象の2つのファイルは別々のディレクトリにある。
 4.エラーチェックは無し。
#!/bin/perl -w
#変数定義
$dir01 = "C:¥¥log01¥¥";
$dir02 = "C:¥¥log02¥¥";
$dir03 = "C:¥¥diff¥¥";
$wd = "C:¥¥difftool¥¥";
$diffexe = "TextDiffDsp.exe";
$hostname = "hogehoge";

#比較対象①検索
    chdir $dir01;
    @file1 = glob "$hostname*log";
    $file10 = pop(@file1);

#比較対象②検索
    chdir $dir02;
    @file2 = glob "$hostname*log";
    $file20 = pop(@file2);
#比較実行
    chdir $wd;
    $exr = "-E¥"" . $dir03 . $hostname . "_差分.xlsx¥"";
    $cmd = $diffexe . " ¥"" . $dir01 . $file10 . "¥" ¥"" . $dir02 . $file20 . "¥" " . $exr;
    system ("$cmd");

Leave a Comment