IIS 7日志文件自动删除?

时间:2011-08-02 22:04:55

标签: asp.net iis-7

IIS 7中是否有任何功能可以自动删除超过指定amt天数的日志文件?

我知道这可以通过编写脚本(并每周运行一次)或Windows服务来完成,但我想知道是否有任何内置功能或其他功能。

此外,目前我们在堆积大量空间时关闭了注销。这会有问题吗?

4 个答案:

答案 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开关也会递归子目录。

参考:http://debug.ga/iis-log-purging/

答案 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上就该主题撰写。