WindowsのIISで、ログを削除する機能が標準ではありません。放置すると溜まり続け、Cドライブがいっぱいになり爆発します(ウソです)昔はタスクスケジュールでスクリプトを実行していたのですが、1行でできることが分かったので記事にします。
コマンド
forfiles /p "C:\inetpub\logs\LogFiles" /s /m *.* /c "cmd /c Del @path" /d -100
- IISのログの場所は C:\inetpub\logs\LogFiles です。
- 上の例では100日以上前のログを削除します。
タスクスケジュール登録
AddTask-Delete-IIS-Log.vbs
' タスクスケジューラでIISのログを自動削除
' 毎日午前2時、100日以上前
If WScript.Arguments.Count = 0 Then
CreateObject("Shell.Application").ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
End If
CreateObject("WScript.Shell").Exec("schtasks /create /tn ""Delete-IIS-Log"" /tr ""forfiles /p \""C:\inetpub\logs\LogFiles\"" /s /m *.* /c \""cmd /c Del @path\"" /d -100"" /sc DAILY /st 02:00 /ru System")
- 上記を VBScript にしてダブルクリックすると、Delete-IIS-Log という名前のタスクスケジュールが登録されます。毎日午前2時に実行します。
- 初めのコマンドは管理者権限で実行するためのものです。
まとめ
AWS EC2でWindowsサーバーを運用しています。オンプレなら気にしなかったのですが、EC2だとCドライブが40GB程度なので、すぐにいっぱいになります。やはり実運用では予期せぬことが起こります。早くWindowsサーバーから脱出せねば。