TAIL, WinTail, Get-Content

Für Unix Administratoren sind Programme wie TAIL und andere schon alte Bekannte und nicht weiter Erklärungswürdig. Aber ich habe immer wieder fest gestellt, dass viele Windows Administratoren noch nicht alle Hilfsmittel von Windows oder kostenfreie Tools anderer Programmierer können. Dazu gehört sicher auch TAIL und als Windows Variante auch WinTAIL.

Wofür kann ich das einsetzen ?

Das englische Wort "TAIL" steht eigentlich für Begriffe wie "Schwanz" oder "Ende" und bezeichnet bezogen auf eine Datei die letzten Zeilen dieser Datei.

Nun schreibt ja auch Windows und Exchange immer wieder die ein oder andere Protokolldatei wie z.B.:

  • Message Tracking
    Exchange speichert die Information über den Nachrichtentransfer in einfachen Textdateien. Ein Tail könnte diese Daten einfach zur Weiterverarbeitung senden, z.B. Um Missbrauch zu erkennen oder Alarme zu generieren.
  • IIS-Logs
    Das gleich gilt für IISLogs, z.B. Um neue IMEIs bei Mobilgeräten (ActiveSync) zu erkennen und zu melden.
  • SMTP-Logs
    Optional kann man auch beim SMTP-Service ein Log aktivieren, um Verbindungen von Client zu überwachen und umgehend zu melden.
  • TAIL auf NETMON/TCPDUMP
    Wenn man einen TCP-Netzwerkmitschnitt z.B. in eine Datei protokolliert, könnte ein TAIL darauf beim auftreten bestimmter Muster (z.B. für Conficker etc.) Alarm schlagen. Auch WinPCap kann Traces ablegen (Siehe http://www.winpcap.org/windump/misc/faq.htm)
  • DNS-Logs
    Man kann im Windows DNS-Server ein Diagnoseprotokoll aktivieren, um DNS-Anfragen in eine Textdatei zu loggen. Auch hier könnte man mit einem TAIL die Anfragen auf bestimmte Systeme (z.B. Trojaner-Domains oder obsolete Systeme etc. überwachen und melden. Dann fehlt nur noch eine Funktion, um die Logs zu rollen.

Aber auch einige andere Programme protokollieren ihre Aktivitäten in Dateien. Und Tail ist nun nichts anderes, also ein Programm, welches solche Dateien überwacht und in Echtzeit den Schluss einer Datei aktuell anzeigt.

Für die als Administrator bedeutet dies nun einfach, dass Sie nicht eine Protokolldatei z.B. mit Notepad öffnen und an das Ende scrollen müssen, sondern auch, dass Sie diesen Schritt vor allem nicht immer wieder wiederholen müssen, um aktuelle Daten anzuzeigen.

Beispiel

Ein praktisches Beispiel kann z.B. die Überwachung eines Webserverprotokolls sein, um den Zugriff eines PDAs oder OWA-Benutzers zu diagnostizieren. Sie möchten als Administrator einfach schnell erkennen, wenn auf den Webserver ein Zugriff erfolgt. Mit dem Programm TAIL (Windows Ressource Kit oder Windows 2003) ist dann eine Anzeige der letzten n Zeilen möglich.

Mit der Option "-f" wird TAIL angewiesen, die Datei immer und immer wieder auf Änderungen zu überprüfen und entsprechend anzuzeigen.

PowerShell Tail

Seit PowerShell 3 gibt es nun auch eine Tail-Funktion beim Commandlet "Get-Content", die den Namen Tail auch verdient. In früheren Versionen gab es zwar schon den "-WAIT"-Parameter, um am Ende einer Datei auf weitere Eingaben zu warten. Allerdings hat Get-Content dazu immer erst die komplette Datei eingelesen und dann am Ende gewartet.

Seit PowerShell 3.0 gibt es den Parameter "-Tail", mit dem Sie die Anzahl der Zeilen angeben können, die Get-Content am Ende noch einliest und dann wartet.

Diese Funktion ist erstaunlich intelligent, da auch das Lesen der letzten Zeilen einer 800 MB IISLog-Datei nur Bruchteile einer Sekunde dauert. Ich denke, dass Get-Content vom Ende rückwärts liest.

Für weitere Anforderungen habe ich mir aber ein eigenes PowerShell-Script gebaut, welches in einer Statudatei sich auch die Position speichern kann. So kann ich auch nach einer Unterbrechung dort wieder aufsetzen, wo ich abgebrochen habe.

TailforWin32

Wenn Sie mit der klassischen "Dos-BOX" etwas auf Kriegsfuß stehen und vielleicht sogar noch ein paar Zusatzfunktionen wünschen, dann gibt es auch Vertreter mit einer grafischen Oberfläche. So gibt es auf Sourcefourge (http://sourceforge.net/projects/tailforwin32) eine kostenfreie Implementation für Windows, mit der Sie in einer GUI auch mehrere Dateien überwachen können.

Da die Überwachung auch über Netzwerk funktioniert, ist damit eine einfach Kontrolle mehrere Prozesse möglich, wenn diese Diagnoseausgaben in Dateien schreiben. Zusätzlich kann dieses Programm auch Codeworte farblich kennzeichnen und über Plug-ins z.B. auch eine Mail senden, wenn ein bestimmter Text auftaucht.

Fazit

Jeder Windows Administrator, der Prozesse überwachen muss, die Textdateien schreiben, sollte TAIL bzw. eine entsprechende Windowsvariante können und zur Hand haben.

Weitere Links