如何安全删除 IIS7 日志

如何安全删除 IIS7 日志

我已经在 Google 上搜索过这个问题,但是没有找到太多的线索。但我正在寻找一种手动(一次性运行,免费)/开源的方法来安全地从 /inetpub/logs/logFiles 中清除 iis 日志

我见过有人提到 isslogs.com,我不知道它有多可靠,但即便如此,我也不想进行任何类型的计划任务,也不想为我不经常使用的东西付费

我只想要一种简单安全的方法来删除 /inetpub/logs/logFiles 中多个文件夹中的所有日志

如果您能提供关于如何删除这些问题的建议或指导,我们将不胜感激。

答案1

这是一个删除超过 90 天的 IIS 日志文件的脚本

MaxDays = 90 
strComputer = InputBox("This script will delete IIS .log files over 90 days old "_ 
    & "from the machine you specify below.") 
wmiQuery = "Select * from Win32_OperatingSystem" 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery(wmiQuery) 
    For Each objItem In colItems 
        sWindowsPath = objItem.WindowsDirectory 
    Next 
Set objW3SVC = GetObject( "IIS://" & strComputer & "/W3SVC") 
    For Each objSite In objW3SVC 
        If objSite.Class = "IIsWebServer" Then 
            strLogDir = UCase(objSite.LogFileDirectory) 
                strLogDir = Replace(strLogDir,"%WINDIR%",sWindowsPath,1,1,1) 
                strLogDir = Replace(strLogDir,"%SYSTEMROOT%",sWindowsPath,1,1,1) 
                strLogDir = Replace(strLogDir,":","$",1,1,1) 
            objLogFolder = "\\" & strComputer & "\" & strLogDir 
            Set oFSO = CreateObject("Scripting.FileSystemObject") 
            Set oFolder = oFSO.GetFolder(objLogFolder) 
            Set colSubFolders = oFolder.Subfolders 
            For Each oSubFolder In colSubFolders 
                If InStr(UCase(oSubFolder),"W3SVC") Then 
                    For Each oFile In oSubFolder.files 
                        If InStr(LCase(oFile.Name),".log") Then 
                             If (Date - oFile.DateCreated > CInt(MaxDays)) Then 
                                oFSO.DeleteFile(oSubFolder & "\" & oFile.Name) 
                            End If 
                        End If 
                    Next 
                End If 
            Next 
        End If 
    Next 
MsgBox("All done.") 

答案2

您可以使用 /S 标志来强制删除子目录中的文件。/Q 标志将阻止它提示您 - 如果您想谨慎,请省略它。因此,类似于:

删除/S/Q logdir\*.log

如果您还想删除子目录,可以使用“rmdir”。它具有相同的两个标志选项。

答案3

这个对我来说最有效。保存为 Retention.vbs 并运行或安排。

来源:https://docs.microsoft.com/en-us/iis/manage/provisioning-and-managing-iis/managing-iis-log-file-storage

sLogFolder = "c:\inetpub\logs\LogFiles"
iMaxAge = 30   'in days
Set objFSO = CreateObject("Scripting.FileSystemObject")
set colFolder = objFSO.GetFolder(sLogFolder)
For Each colSubfolder in colFolder.SubFolders
        Set objFolder = objFSO.GetFolder(colSubfolder.Path)
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
                iFileAge = now-objFile.DateCreated
                if iFileAge > (iMaxAge+1)  then
                        objFSO.deletefile objFile, True
                end if
        Next
Next

相关内容