未分類

Ruby Cisco製ルータのログからsh runを抜き出す

 大量のCisco製のルータのログがあって、その中からsh runだけを抜き出したファイルを作成する。

#使い方
#コマンドプロンプト起動
#cdでカレントフォルダ(抜き出ししたいファイル(ciscoログ)があるフォルダ)に移動
#(同じフォルダに当ファイルも置いておく)
#当rbファイル名がsh_run.rbの場合
#ruby "sh_run.rb"を実行
#同じフォルダに頭sh runのついたファイルができあがる。

#カレントフォルダ内のtxtファイル名情報を配列として取得
#全txtファイルの場合、filelists = Dir.glob("*.txt")
filelists = Dir.glob("*.txt")
#取得した各ファイル名に対して、shrun部分を抜き出して、新たなファイルに保存
filelists.each do |filename|
  #ファイルを読み込みモードで開く
  File.open(filename,"r") do |file|
    #ファイルを一気に読み込む
    file = file.read
    if file =~ /(#(sh run|show running-config)[\s|\S]*^end$)/
      puts filename + " OK"
      filename_new = "sh run_" + filename
      #ファイルに書き込み
      File.open(filename_new,"w") do |f|
        f.puts $1
      end
    else
      puts "NG"
    end
  end
end

-未分類