IISログの削除を自動化する

Windows Serverには、Webサーバーの役割として IIS (Internet Information Services)があります。

IIS は自作した Webアプリ公開用だけではなく、Exchange Server や WSUS などでも利用されています。

IISのログは自動的にローテーションして削除されないため、システム領域に十分なディスク容量を確保していない場合、IISログによってディスクが逼迫する恐れがあります。

そのため、必要に応じて定期的にログを削除する必要がありますが、手動で運用するのは面倒なので自動化をお勧めします。

今回は IISログ削除をバッチファイルによる自動化を紹介します。

1.バッチファイル作成

下記の内容をバッチファイルとして作成します。

180日以前のIISログファイルを削除するという内容です。

@echo off
setlocal

rem IISログファイル格納パス
set LOGDIR1=C:\inetpub\logs\LogFiles\W3SVC1
set LOGDIR2=C:\inetpub\logs\LogFiles\W3SVC2

rem 削除対象期間
set DELDATE=180

rem #IISログファイル削除
forfiles /p %LOGDIR1% /m *. log /d -%DELDATE% /c "cmd /c del @path"
forfiles /p %LOGDIR2% /m *. log /d -%DELDATE% /c "cmd /c del @path"

exit /b 0

作成したバッチファイルはタスクスケジューラで定期実行します。


2.forfilesコマンドのオプション

forfilesコマンドのオプションについて記載します。

/p:検索開始のパス

検索を開始するパスを指定します。

今回は2ヶ所ある IISログのフォルダを指定しています。

/m:検索対象のファイル

指定された検索マスクに従ってファイルを検索します。

今回は「.log」拡張子のファイルを指定しています。

/d:最終更新日

最終更新日が指定した日数より前のファイルを指定しています。

上記の例だと180日以上前のファイルになります。

/c:実行コマンド

検索結果のファイルに対して実行する処理を指定しています。

コマンド文字列は二重引用符(“)で囲む必要があります。

今回は対象ファイルを「del」コマンドで削除しています。

IISログ削除の自動化は以上です。

コメント

タイトルとURLをコピーしました