Windows Aufgabenplanung - Task Scheduler - Reiter Aktionen - IIS Log Cleanup - C-inetpub-logs-LogFiles nach X Tagen bereinigen

Alte IIS C:\inetpub\logs\LogFiles nach X Tagen bereinigen

IIS Log Dateien löschen, die älter sind als X Tage

Es kann passieren, dass der Ordner in dem der Web-Server die Log-Dateien speichert (C:\inetpub\logs\LogFiles) mit der Zeit recht groß wird.

Im Internetinformationsdienste (IIS)-Manager selbst kann man nur auswählen, wie oft eine neue Log-Datei erstellt oder wie groß die Log-Datei werden soll. Auch kann eingestellt werden, dass keine neuen Protokolldateien erstellt werden sollen. Allerdings kann nicht eingestellt werden, dass die neusten Dateien behalten und die alten Log-Dateien gelöscht werden.

internetinformationsdienste-iis-manager-protokollierung-c-inetpub-logs-logfiles

Wie die IIS Log Dateien, die älter als X Tage sind, trotzdem regelmäßig gelöscht werden können, zeige ich in diesem kurzen Artikel weiter unten.

Möglichkeit #1 – IIS Log Dateien mit CMD Befehl in der Aufgabenplanung bereinigen

Um die IIS Log Dateien, die sich standardmäßig im Ordner C:\inetpub\logs\LogFiles befinden und älter als X Tage sind zu bereinigen, kann man am einfachsten folgende XML-Datei in die Windows-Aufgabenplanung importieren und als Job regelmäßig laufen lassen.

XML-Datei für den Import erstellen

Folgenden Text mit dem Windows-Editor in eine Text-Datei (z.B. namens „IIS Log Cleanup.xml“) auf dem Desktop speichern.

In der Zeile 46 kann schon an dieser Stelle die Zahl 7 und somit die Aufbewahrungsdauer der Log-Files in Tagen angepasst werden (das geht auch später).

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2014-05-09T14:36:04.4840502</Date>
    <Author>Admin</Author>
    <Description>Löscht IIS-Log-Dateien die älter sind als X Tage</Description>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2014-05-09T22:00:00</StartBoundary>
      <ExecutionTimeLimit>P1D</ExecutionTimeLimit>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P1D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>forfiles.exe</Command>
      <Arguments>/P C:\inetpub\logs\LogFiles /S /M *.log /D -7 /C "cmd /c del @file"</Arguments>
    </Exec>
  </Actions>
</Task>

Die erstellte XML-Datei kann nun als Windows-Aufgabe importiert werden.

Windows Aufgabe für die Log Bereinigung erstellen

Windows Aufgabenplanung starten

Windows Aufgabenplanung - Task Scheduler - Icon - Symbol

Im rechten Bereich unter „Aktionen“ den Punkt Aufgabe importieren… anklicken.

Windows Aufgabenplanung - Task Scheduler - Aktionen - Aufgabe erstellen - Aufgabe importieren - Ausführen - Beenden - Deaktivieren - Exportieren - Eigenschaften

Die von uns erstellte XML-Datei öffnen.

Einstellungen des Jobs kontrollieren und anpassen

Nun können die Einstellungen kontrolliert und angepasst werden. Z.B. kann das ausführende Konto im Reiter „Allgemein“ verändert werden.

Windows Aufgabenplanung - Task Scheduler - Reiter Allgemein - IIS Log Cleanup - C-inetpub-logs-LogFiles nach X Tagen bereinigen

Oder im Reiter „Trigger“ kann die Häufigkeit der Bereinigung eingestellt werden (die importierte Aufgabe ist auf täglich 22 Uhr eingestellt).

Windows Aufgabenplanung - Task Scheduler - Reiter Trigger - IIS Log Cleanup - C-inetpub-logs-LogFiles nach X Tagen bereinigen

Wie alt die Log-Dateien werden dürfen, bevor sie gelöscht werden, kann im Reiter „Aktionen“ eingestellt werden (hier werden sie 7 Tage aufbewahrt).

Windows Aufgabenplanung - Task Scheduler - Reiter Aktionen - IIS Log Cleanup - C-inetpub-logs-LogFiles nach X Tagen bereinigen

Dazu die Zeile „Programm starten“ doppelklicken und im Feld „Argumente hinzufügen“ die Zahl 7 zwischen /D -7 /C anpassen.

Windows Aufgabenplanung - Task Scheduler - Reiter Aktionen - Aktion bearbeiten - IIS Log Cleanup - C-inetpub-logs-LogFiles nach X Tagen bereinigen

Wenn alle Einstellungen in Ordnung sind, mit OK  bestätigen, damit die Aufgabe erstellt wird.

Hier ist die eigentliche Magie

Falls man den Job nicht aus dieser XML-Datei importieren möchte, so kann man die Aufgabe manuell erstellen und folgende Zeile als Aktion verwenden (die 7 [Tage] Aufbewahrungsfrist vorher anpassen):

forfiles.exe /P C:\inetpub\logs\LogFiles /S /M *.log /D -7 /C "cmd /c del @file"

 

Möglichkeit #2 – IIS Log Dateien mit PowerShell-Skript und Aufgabenplanung bereinigen

Alternativ könnte man die alten IIS-Log Dateien mit einem PowerShell Skript und dem Task Scheduler löschen.

Dazu ein PowerShell-Skript mit folgendem Inhalt erstellen

# PowerShell Skript löscht die IIS Log-Dateien die älter sind als 7 Tage

get-childitem -Path C:\inetpub\logs\LogFiles -recurse |
where-object {$_.lastwritetime -lt (get-date).addDays(-7)} |
Foreach-Object { del $_.FullName }

und im Windows Task Scheduler z.B. täglich laufen lassen.

Wenn das PowerShell-Skript IIS_Log_loeschen.ps1 heißen und im Ordner C:\Scripts\ liegen würde, dann wäre die Zeile zum Aufruf in der Aufgabenplanung folgende:

powershell.exe -noprofile -NonInteractive -executionpolicy ByPass -File "C:\Scripts\IIS_Log_loeschen.ps1"

 

Alternativen

Log-Dateien auf eine zweite Festplatte verlagern oder Log-Erstellung deaktivieren

internetinformationsdienste-iis-manager-protokollierung-c-inetpub-logs-logfilesFalls eine zweite Festplatte zur Verfügung steht, so könnte man im Internetinformationsdienste (IIS)-Manager unter Sites/<Site>/Protokollierung den Standardpfad zu den IIS-Logdateien (%SystemDrive%\inetpub\logs\LogFiles) auf die dedizierte Festplatte einstellen oder ganz deaktivieren.

ISS Log-Ordner „C:\inetpub\logs\LogFiles“ komprimieren

Hinweis:
Die Komprimierung des Log-Ordners könnte evtl. die SharePoint-Performance beeinträchtigen.

Falls die Web-Server Log-Dateien im Standardpfad (%SystemDrive%\inetpub\logs\LogFiles) liegen, dann könnte man folgendermaßen die Komprimierung dieses Ordners aktivieren.

IIS-Manager öffnen.

Information Services (IIS) Manager - Internetinformationsdienste (IIS)-Manager - Icon 2

Den Server auf der linken Seite markieren und entweder im Kontextmenü (rechte Maustaste) oder auf der rechten Seite „Beenden“ (ansonsten wird später evtl. ein „Fehler beim Übernehmen der Attribute“ angezeigt, da die Log-Files noch im Zugriff sind).

Internetinformationsdienste (IIS)-Manager - Server verwalten - Aktionen - Neu starten - Starten deaktiviert - Beenden

Im Windows-Explorer den Pfad C:\inetpub\logs öffnen.

Eigenschaften des darin liegenden Ordners „LogFiles“ öffnen (rechte Maustaste).

In den Eigenschaften des Ordners „LogFiles“ auf den Button „Erweitert“ klicken.

Im Fenster „Erweiterte Attribute“ die Option „Inhalt komprimieren, um Speicherplatz zu sparen“ aktivieren und mit OK bestätigen.

Im Fenster „Änderungen der Attribute bestätigen“ die Option „Änderungen für diesen Ordner, untergeordnete Ordner und Dateien übernehmen“ aktivieren (bzw. aktiviert lassen) und mit OK bestätigen.

Wenn der Komprimierungsvorgang beendet ist, wird der Name des Ordners LogFiles in blauer Schrift dargestellt.

Den Web-Server im IIS-Manager wieder starten.

Ein Gedanke zu „Alte IIS C:\inetpub\logs\LogFiles nach X Tagen bereinigen“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert