So verhindern Sie, dass IIS-Protokolle Ihre Serverfestplatten füllen

Wenn Sie eine Version von Microsoft Internet Information Services (IIS) auf einem Ihrer Server ausführen, haben Sie …

wahrscheinlich gesehen, was passiert, wenn IIS-Protokolle nicht regelmäßig bereinigt werden. Alte IIS-Protokolle können schnell den gesamten freien Speicherplatz auf der Festplatte belegen, insbesondere auf Servern mit stark ausgelasteten Websites wie Microsoft Outlook Web Access oder Branchenanwendungen.
Wäre es nicht schön, eine geplante Aufgabe zu haben, die die alten Protokolle automatisch löscht, anstatt IIS-Protokolle manuell überprüfen und löschen zu müssen? Die Lösung lässt sich einfach mit einem einfachen Visual Basic-Skript und einer geplanten Aufgabe auf jedem der Server implementieren, die Sie bereinigen möchten.

Um die alten IIS-Protokolle oder alle Arten von Protokolldateien zu löschen, die sich im Laufe der Zeit ansammeln, müssen Sie zuerst das unten dargestellte Skript mit der Erweiterung .vbs speichern, z. B. delete_old_logs.vbs. Ich möchte alle Wartungsskripte, die ich auf einem Server platziere, in einem bestimmten Verzeichnis ablegen, das ich erstelle. In meinem Fall ist dies C: Programme Skripte. Sie können die Skriptdatei jedoch überall auf dem Server speichern.
Nachdem das Skript auf dem Server gespeichert wurde, müssen Sie das Skript bearbeiten, um den genauen Pfad anzugeben, der bereinigt werden soll, und wie viele Tage Protokolldateien verbleiben sollen. Sie finden diese Informationen in der Zeile, die mit beginnt Rufen Sie CleanDirectory auf. Im folgenden Beispiel löscht das Skript die Standard-IIS-Protokolle, die älter als sieben Tage sind. Stellen Sie sicher, dass sich Ihr Ordnerpfad innerhalb der Anführungszeichen befindet, und denken Sie daran, dass Sie mehrere einfügen können Rufen Sie CleanDirectory auf Zeilen, wenn Sie Protokolle aus mehreren Quellen gleichzeitig auf demselben Server löschen möchten. Speichern Sie die Skriptdatei, nachdem Sie Änderungen am Skript vorgenommen haben.
Der letzte Schritt besteht darin, eine Aufgabe zum Ausführen der Skriptdatei zu planen. Das Konto, unter dem Sie die geplante Aufgabe ausführen, muss über Berechtigungen für die Ordner verfügen, in denen sich die Protokolldateien befinden. Daher ist es normalerweise am besten, ein spezielles Konto (lokal oder Domäne) zu erstellen und dieses Konto in die lokale Serververwaltungsgruppe aufzunehmen. Dadurch kann das Skript seine beabsichtigte Funktion an einem beliebigen Ort auf dem Server ausführen.

Wenn Sie die geplante Aufgabe erstellen, müssen Sie zu dem Speicherort navigieren, an dem Sie die Datei gespeichert haben. Stellen Sie sicher, dass der Pfad in Anführungszeichen gesetzt ist, wenn er Leerzeichen enthält. Planen Sie die Aufgabe so, dass sie täglich ausgeführt wird, um optimale Ergebnisse zu erzielen.
Mit nur wenigen einfachen Schritten können Sie schnell eine proaktive Lösung auf Ihren Servern implementieren, um zu verhindern, dass IIS-Protokolle Ihre Festplatten vollständig füllen. Da Internetinformationsdienste nicht die einzige Anwendung sind, die die Gewohnheit hat, viele Protokolldateien zu erstellen, werden Sie dieses Bereinigungsskript sicher in zahlreichen Verwendungszwecken finden.
'++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++
'delete_old_files.vbs
'Basierend auf dem Original-Skript hier:
'
http://www.microsoft.com/technet/scriptcenter/csc/scripts/files/files/
cscfi006.mspx
'++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++

'Bereinigen Sie die aufgelisteten Verzeichnisse von alten Sicherungsdateien
Rufen Sie CleanDirectory auf ("C: WINDOWS system32 LogFiles W3SVC1", 7).

'Löschen Sie alte Sicherungsdateien
Funktion CleanDirectory (strPathtoFiles, intDaystoKeep)
Dim fso, f, fc, f1, strFiles, intFiles
strFiles = ""
intFiles = 0

Setze fso = CreateObject ("Scripting.FileSystemObject")
If (fso.FolderExists (strPathtoFiles)) Then
Setze f = fso.GetFolder (strPathtofiles)
Setze fc = f.Files

'- Bestimmen Sie, ob die Datei älter als die definierten Tage ist
Für jedes f1 in fc
Wenn DateDiff ("d", f1.DateLastModified, Now)> intDaystoKeep Then
strFiles = strFiles & f1.Name & vbCrLf
intFiles = intFiles + 1
f1.Delete (True)
End If
Nächster

Setze f1 = Nichts
Setze fc = Nichts
Setze f = Nichts

Ende wenn
setze fso = Nichts
Endfunktion
'Stoppen Sie das Skript, falls es nicht automatisch WScript.Quit wird

ÜBER DEN AUTOR
Will Schmied
ist ein leitender Systemadministrator für ein weltbekanntes Kinderforschungskrankenhaus. Er verfügt über zahlreiche Microsoft MCITP-, MCTS- und ältere Zertifizierungen und hat Erfahrung mit Exchange und Blackberry. Will beschäftigt sich seit vielen Jahren aktiv mit der Zertifizierungs- und Schulungsseite der IT und schreibt oder trägt zu mehreren Dutzend Büchern bei. Er ist Gründer des Zertifizierungsportals MCSE World. Nachdem Will die Regierungszeit an einen guten Freund aus Down Under weitergegeben hat, ist er heute mit seinem Blog weniger präsent. Geschichten eines Systemadministrators.

Similar Posts

Leave a Reply