投稿

5月, 2021の投稿を表示しています

[PowerShell]ログファイルを監視する

ログファイルの更新された内容をリアルタイムに監視する場合、UNIXでは「Tail」コマンドを使用しますが、今回はPowerShellを使ってApacheのログを監視するスクリプトを紹介します。 PowerShellは、Windowsで利用できるスクリプト言語で、Windows 10 でのバージョンは、Windows PowerShell 5.xです。 例として、Apacheのログファイルが、C:\MAMP\logs\access.logであった場合、 Get-Content -Wait -Tail 10 -Path "C:\MAMP\logs\access.log" で、監視できます。 Get-Content:(テキスト)ファイルの内容を参照する オプション 定義 -Wait 1秒おきにファイルをチェックし、新たに追加された内容があるかどうかをチェックする(省略可能) -Tail -Tail n(数字) ファイル末尾のn行分を表示させる -Path ファイル名を指定する Select-String:キーワードを含んだ行のみ表示 Get-Content -Wait -Tail 10 -Path "C:\MAMP\logs\access.log" | Select-String "Get" ログでキーワード"Get"が含まれる行のみ表示します Get-Date:日付を取得します Apacheの場合、access.2021-05-22.logのようにログファイル名に日付がつきます。その場合は、現在日付をフォーマットして指定します。 Get-Content -Wait -Tail 10 -Path ("C:\MAMP\logs\access." + (Get-Date -UFormat "%Y-%m-%d.log")) 指定子 定義 %A 曜日-フルネーム %m 月番号 %d 月の日-2桁 %Y 4桁形式の年 %R 24時間形式の時間-秒なし %Z 協定世界時(UTC)からのタイムゾーンオフセット