IIS Logfiles löschen – viel Speicher belegt

Der IIS (Internet Information Services) ist der hausinterne Webserver von Microsoft. Die meisten Webseiten im Internet laufen auf Linux Maschinen, da diese sicherer und performanter sind. Aber auch der Microsoft IIS hat seine Vorteile. Manche Applikationen laufen nur auf dem MS IIS. Aber nun mehr zu diesem Beitrag. Ich hatte das Problem, dass auf meinem IIS Webserver der Speicher immer voller und voller wurde. Ich wusste nicht woher das kam und was der Grund ist. Mit einem Tool habe ich dann die Speicherbelegung auslesen lassen. Hier ist mir aufgefallen dass die IIS Logfiles unter “C:\inetpub\logs\LogFiles” stark an Größe zugelegt haben. Einige um die 30-40 GB groß waren die IIS Logfiles. Die Lösung ist einfach: Alte IIS Logfiles löschen. Das ist auch kein Problem, solange man nur die alten LOGs und nicht die neuen Logfiles löschen lässt.

ItNeverEnds / Pixabay

 

IIS Logfiles sehr groß unter “C:\inetpub\logs\LogFiles

Mit einem Tool wurde dann die Speicherbelegung der C: Platte ausgelesen. Hier hat sich herausgestellt das die Log Dateien unter “C:\inetpub\logs\LogFiles” sehr groß (30-40 GB) waren. Hier legt der IIS Logdateien an, welche mit “W3SVC*” benamt werden.

Der Webserver legt die Ordner nach den verschiedenen Site-ID´s an.

  • Site mit ID 1 = W3SVC1
  • Site mit ID 2 = W3SVC2
  • Site mit ID 3 = W3SVC3
  • etc.

IIS Logfiles löschen W3SVC

Die Datei “%WinDir%\System32\Inetsrv\Config\applicationHost.Config” beinhaltet mehrere Informationen über die ID´s der WebSites. Wenn man beispielsweise nach “site” sucht, sollten Einträge wie diese zu sehen sein:

<site name="Default Web Site" id="1">

Die Logdateien werden vom IIS leider nicht automatisch gelöscht. Die alten Logfiles auf dem IIS werden aber auch nicht mehr benötigt, das bedeutet, dass wir diese löschen können.

 

IIS Logfiles löschen

Wie oben schon gesagt, werden alte IIS Logfiles nicht automatisch gelöscht. Aber da wir nur die neuen Logfiles benötigen, aber nicht die alten Logdateien, können wir diese löschen. Meiner Meinung nach ist der Zeitraum von 30 Tagen ein sehr gut gewählter Zeitraum. Also alle Dateien, die älter sind als 30 Tage, können wir bedenkenlos löschen.

Hierzu gibt es sogar ein offizielles VB Script von Microsoft, welches die alten IIS Logs löschen kann. Hierzu öffnen wir den Texteditor, kopieren den Code hinein und speichern diesen unter “Delete-IIS-Logfiles.vbs” ab.

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

In Zeile 1 wird angegeben, wo sich die Logdateien befinden und in Zeile 2 in welchem Zeitraum diese gelöscht werden sollen. (Im Beispiel “älter als 30 Tage“).

Um das Script auszuführen, gehen wir wie folgt vor:

  1. CMD (Eingabeaufforderung) als Administrator starten
  2. Befehl eingeben:
    cscript.exe c:\pathToScript\Delete-IIS-Logfiles.vbs
  3. Befehl ausführen

Nachdem das VB Script ausgeführt wurde, sollte nun wieder eine Menge Speicherplatz auf dem Webserver freigegeben sein. Um die IIS Logfiles löschen zu lassen, kann man hierzu auch einen Task in der Aufgabenplanung anlegen und diesen einmal in der Woche ausführen lassen. 🙂

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments