はじめに
WindowsのIIS機能では、IISログの定期削除機能がないため、溜まり続けるとドライブがいっぱいになってしまいます。
最近業務上では、IISログを定期的に削除したいとの依頼があり、代わりにスクリプトを作成し、Windowsのタスクスケジューラ機能に登録し、定期的に削除するように設定しました。
何かファイルを定期的に削除する際に、ぜひご参考下さい。
スクリプト
作成したスクリプトは下記となります。
例として、IISログの保存期間は30日間となっております。
# FILENAME:IISログ自動削除スクリプト
# SUBJECT:IISに出力されているログを30日間保持する
# AUTHOR( ): HYJ
# DATE: 2021.02.16
cd %~dp0
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set time2=%time: =0%
set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%
forfiles /P "C:\inetpub\logs\LogFiles\W3SVC1" /M *.log /C "cmd /c if @isdir==FALSE del /s @path" /D -30
if %ERRORLEVEL% == 0 (
echo %yyyy%/%mm%/%dd%/%hh%:%mn%:%ss% "IISログ自動削除スクリプトは実行OK、30日間以上のIISログは削除されました" >> IIS-DELET-LOG.log
) else (
echo %yyyy%/%mm%/%dd%/%hh%:%mn%:%ss% "30日間以上のIISログは存在していないため、IISログ自動削除スクリプトは実行NG" >> IIS-DELET-LOG.log
)
exit /b 0