Come eliminare i vecchi file di log di IIS

Tuesday 17 July 2007

Sui webserver più carichi che girano magari su hardware non di ultima generazione può sussistere il grave problema dello spazio; la prima cosa da cancellare, dopo averne effettuato l'archiviazione, sono i file di log. Lo script riportato di seguito vi permetterà di cancellare tutti i file di log più vecchi di una certa data.

Le variabili da impostare sono semplicemente 3:

intDaysOld: numero di giorni precedenti ai quali verranno eliminati tutti i file
strObjTopFolderPath: percorso all'interno dei quali cercare i file
strLogFileExt: estensione, comprensiva del punto, dei file da eliminare

Option Explicit

Dim intDaysOld, strObjTopFolderPath, strLogFileSuffix, ObjFS, ObjTopFolder 
Dim ObjDomainFolder, ObjW3SvcFolder, ObjSubFolder, ObjLogFile, ObjFile

intDaysOld               = 5                         'numero di giorni precedenti ai quali verranno eliminati tutti i filestrObjTopFolderPath = "D:\Logsites\"       'percorso all'interno dei quali cercare i file
strLogFileExt            = ".log"                    'estensione, comprensiva del punto, dei file da eliminare

Set ObjFS = CreateObject("Scripting.FileSystemObject")
Set ObjTopFolder = ObjFS.GetFolder(strObjTopFolderPath)

For Each ObjDomainFolder in ObjTopFolder.SubFolders
WScript.Echo("Cartella: " & ObjDomainFolder.name)
    For Each ObjW3SvcFolder in ObjDomainFolder.SubFolders
        WScript.Echo("  Cartella: " & ObjW3SvcFolder.name)
        Set ObjSubFolder = ObjFS.GetFolder(ObjW3SvcFolder)
            For each ObjLogFile in ObjSubFolder.files
                Set ObjFile = ObjFS.GetFile(ObjLogFile)
                If datediff("d",ObjFile.DateLastModified,Date()) > intDaysOld and lcase(right(ObjLogFile,4))=strLogFileExt then
                    '*****************************************************
                    'Non eliminare il commento finchè non sarete sicuri che lo script funziona correttamente
                    WScript.Echo("    Verranno cancellati " & ObjSubFolder.name & "\" & ObjFile.name)
                    'WScript.Echo("    Cancellati " & ObjSubFolder.name & "\" & ObjFile.name)
                    'ObjFile.Delete
                    '*****************************************************
                End If
                Set ObjFile = nothing
            Next
        Set ObjSubFolder = nothing
    Next
Next

Set ObjTopFolder = nothing
Set ObjFS = nothing

 

Cancella-Log-Files.zip (802,00 bytes)

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading