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ログ削除の自動化は以上です。
コメント