2011/07/23

【dev】powershell を利用してシステムログを tail する

 
Powershell の Get-EventLog コマンドと schedule コマンドを利用して
Winsows イベントログを監視する方法の紹介。
 
まるで tail コマンドを利用しているように扱えます。
 
今回は system ログの監視をして見ます。緑色が powershell コマンドです。
 

schedule --uniq_last --process powershell --args "/c Get-Eventlog -logname system -newest 10" --option trim --pipe-process sort --ignore-filter InstanceID --ignore-filter ----

  
powershell の出力は上から順に表示されるので --pipe-process を通して
ソートしています
 
powershell_eventlog_liketail
 
Poweshell 自体は起動が重いので --time オプションを利用する事により、
監視時間の間隔を調整する事も可能です。
 
また「schdule コマンドの引数が長すぎる」という方は doskey を利用して、
下記のように汎用コマンドとして登録すると、
 
doskey watch=schedule --option item_hint_space --option trim --option space2single --option tabs2single --uniq_last --process "cmd /c" --args "$1 $2 $3 $4 $5 $6 $7 $8 $9"
 
通常の powershell コマンドの前に watch を付けるだけで
 
watch powershell /c Get-Eventlog -logname system -newest 10
 
監視する事もできます。なお、この場合 sort はしていませんので tail とは
似ているようで出力は異なりますが、他のコマンドを監視するときにも使える、
便利なショートカットコマンドになりますね。

0 件のコメント:

コメントを投稿