IIS 7中是否有任何功能可以自动删除超过指定amt天数的日志文件?
我知道这可以通过编写脚本(并每周运行一次)或Windows服务来完成,但我想知道是否有任何内置功能或其他功能。
此外,目前我们在堆积大量空间时关闭了注销。这会有问题吗?
答案 0 :(得分:91)
您可以使用管理工具>创建每日运行的任务。任务计划程序。
将您的任务设置为运行以下命令:
forfiles /p "C:\inetpub\logs\LogFiles" /s /m *.* /c "cmd /c Del @path" /d -7
此命令适用于IIS7,它会删除一周或更长时间内的所有日志文件。
您可以通过更改/d
arg值来调整天数。
答案 1 :(得分:3)
一行批处理脚本:
forfiles /p C:\inetpub\logs /s /m *.log /d -14 /c "cmd /c del /q @file"
修改/ d开关以更改日志文件在删除前挂起的天数。 / s开关也会递归子目录。
答案 2 :(得分:1)
类似的解决方案,但在powershell中。
我已经设置了一个任务来运行powershell,并将以下行作为Argument ..
dir D:\IISLogs |where { ((get-date)-$_.LastWriteTime).days -gt 15 }| remove-item -force
删除超过15天的D:\ IISLOgs文件夹中的所有文件。
答案 3 :(得分:0)
另一个可行的Powershell单线:
Get-ChildItem -Path c:\inetpub\logs\logfiles\w3svc*\*.log | where {$_.LastWriteTime -lt (get-date).AddDays(-180)} | Remove-Item -force
如果$_.LastWriteTime
无效,您可以改用$PSItem.LastWriteTime
。
有关利用IIS LogFiles文件夹硬盘空间使用情况的更多信息和其他建议,我还建议我在read this blog post上就该主题撰写。