こんばんは!今日はネットワーク機器のエラーログを探していましたが大量のログからエラーを見つけるのが苦でした。そんな時に役に立つだろうと思ったのがエラーログ抽出バッチファイルです。
よく見かけるネットワーク機器ならshow log等のコマンドでログの中身を確認するかと思います。
現場でログ確認したい時は、ネットワーク機器やサーバー機器のログをテキストファイルなどにエクスポートしログを確認したりします。ログを保存して作業ベンダにログを送ることも多々あります。
目次
findstrコマンド エラー抽出バッチ
サーバー、ネットワークのログは大規模になればなるほど、大量のログからエラーを特定するのがとても大変です。
そこで考えたのがログ抽出バッチです!
まずは順を追ってコマンドの使い方からの説明です。
findstr コマンド ファイルから文字列を検索
findstrコマンドは ファイルの中からテキスト文字列を検索することの出来るコマンドです。
①下記のファイル(test.txt)があります。
※aから順に文字列が並んでいますが i の行にaが含まれています。
②この中から文字列を探したい場合は下記のように打ちます。
findstr “探したい文字” “検索対象のファイル”
③a が含まれている文字列を返す為には、下記のコマンドを打ちます。
findstr a test.txt
④コマンドプロンプトの応答結果は下記になります。
aの文字を含む文字列だけ表示しています。
このようにfindstrコマンドは、ファイルから文字列探す場合に使用します。
findstr コマンド オプション
findstrコマンドのオプションを使用すると更に検索の幅が広がります。
オプション一部
/v 指定した文字列を含まない行をすべて検索
/g: 指定されたファイルから検索文字列を取得する
/i 大文字・小文字の区別をしないで検索する
/x 完全に一致する行のみ検索する。
/n findstrで条件に一致した行は、行番号をつけて返す。
findstr コマンド オプションを使用した例
findstr /v オプション 使い方
/v オプション (指定した文字列を含まない行をすべて検索) の使用例です。
findstr /v “除外したい文字” “検索対象のファイル”
①下記のコマンドを打ちます。
findstr /v a test.txt
②コマンド応答結果としてtest.txt の a を含む文字列は表示されてません。
このようにfindstr オプション /v は、文字列を除外して検索ができます。除外できる文字は、1文字だけでなく数文字以上の文字列も除外できます。
findstr /g オプション使い方
/g: オプション(指定されたファイルから検索文字列を取得する)の使用例です。
findstr /g:“文字列を保存したファイル” “検索対象のファイル”
①まずは、文字列を保存しファイルを作成します。a,b,d,e,g,o,pと打ちjogai.txtで保存します。
②下記のfindstrコマンドを打ちます。
findstr /g:jogai.txt test.txt
②コマンド結果として、/gオプションで指定したファイル(jogai.txt) にある文字列が表示されます。
findstr /v /g 組合せた 使い方
/v(指定した文字列を含まない行をすべて取得)と/g:(指定されたファイルから検索文字列を取得する)を組み合わせて使用する方法が便利です。一見、/vと/gは組み合わせ出来ないと思いますが、組み合わせて使用することができます。
findstr /v /g:”文字列を保存したファイル” “検索対象ファイル”
①検索除外したい文字列をファイルとして保存します。(jogai.txt)
②下記のコマンドをコマンドプロンプトで打ちます。
findstr /v /g:jogai.txt test.txt
②/gで指定したファイルの文字列以外が表示されます。
このようにfindstr g:”ファイル” とすることで、”ファイル”に保存された文字列を表示します。
※補足
末尾に>(リダイレクト)をつけるとエラー抽出.txt ファイルが作成できます。
findstr /v /g:jogai.txt test.txt > エラー抽出.txt
findstrコマンド エラー抽出バッチの作成
①サーバー、ネットワーク機器のログを保存します。(下記はWindowsファイアウォールのログです。)
②検索除外したいファイルを作成し保存します。(jogai.txt) 今回はALLOW(許可)という文字列を除外します。
③下記のコードをコピーし、バッチファイルを作成保存します。 (バッチファイル名はfirewall_err抽出.bat)
@echo off
findstr /v /g:jogai.txt firewall.log > エラー.txt
④バッチをクリックすると②のファイルの文字列を除外してログを保存します。
⑤余計なログは弾いてエラーのみログを保存してくれるので各段にログが見やすくなります。
もっと簡易的で便利なエラーログ抽出があれば、またご紹介します。それではー!
良ければ過去記事も見てみてください↓