windows server内の溜まったイベントログの一括処理

自社ローカルネットワーク内にあるサーバーのシステムドライブの空き容量が不足していたため、原因を調査したところ、システムログのアーカイブが容量の半分を占めていたことがわかり、削除対応を行ったので備忘録としてメモします。

環境はHyper-V Server 2012 R2です。

Hyper-V ServerはCUIベースなので、コマンドで作業していきます。
流れとしては、ファイル削除のためのスクリプトを作成し実行させます。

ファイル削除のためのPowerShellスクリプトを作成

最初はdelコマンドで範囲指定すれば削除できるかと簡単に考えていたのですが、できないようなので、コマンドを調べたところ以下のコマンドで対応可能でした。


#対象とするイベントログを羅列
$Log           = "System,Application,Security" -split ","
 
#対象とするイベントログの保持期間(日単位)を設定
$Ret_Day       = "3,3,3" -split ","
 
#ログアーカイブの保持フォルダ(通常はこのままの設定でOK)
$Log_Folder    = "C:\Windows\System32\Winevt\Logs"
 
for ( $i = 0 ;$i -lt  $Log.count; $i++ ){
            $Log_Name  = "Archive-" + $Log[$i] + "-" +`
             (Get-Date).AddDays(-1*$Ret_Day[$i]).ToString("yyyy-MM-dd") + `
             "-*-*-*-*.evtx"
 
             Get-ChildItem ($Log_Folder + "\*.*") -include ("Archive-" + $Log[$i] + "*") -Recurse |`
             Where-Object { $_.Name -lt $Log_Name} |`
             Foreach-Object { $_.Delete() }
             }

Windowsサーバー上でコマンドプロンプトを開き、任意の場所に空の.ps1ファイルを作成し、上記コードを張付けて保存します。

サーバー上任意の場所に.ps1ファイルを作成(例としてRemoveAllEventLog.ps1という名前で作成しています)
サーバー上任意の場所に.ps1ファイルを作成(例としてRemoveAllEventLog.ps1という名前で作成しています)


ファイル編集のためにnotepadで作成した.ps1ファイルを開きます
ファイル編集のためにnotepadで作成した.ps1ファイルを開きます


コード張付け→上書き保存→ファイルを閉じる
コード張付け→上書き保存→ファイルを閉じる


コマンドプロンプト内でPowerShellを起動し、作成した.ps1ファイルを実行
コマンドプロンプト内でPowerShellを起動し、作成した.ps1ファイルを実行


上記のようなエラーが発生する場合、ファイル名の先頭に.\を付けて実行
上記のようなエラーが発生する場合、ファイル名の先頭に.\を付けて実行


作業前より空き容量が減っていれば成功です
作業前より空き容量が減っていれば成功です







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です