Open Source im professionellen Einsatz
Linux-Magazin 02/2008

Perl-Skript für periodische Kommandoaufrufe

Netz-Journal

Was der Rechner im eigenen Netz treibt, offenbart ein Aufruf von »netstat«. Mit ein paar Perl-Modulen lässt sich daraus ein Tool entwickeln, das die Daten dynamisch anzeigt, ganz nach dem Vorbild von Top.

327

Wer wissen will, welche Ports gerade für Netzwerkaufgaben in Verwendung sind, ruft »netstat« auf. Das praktische Linux-Utility kennt mehrere Modi, die der Benutzer über Kommandozeilenoptionen ansteuert. Die Option »-s« produziert beispielsweise eine Statistik des Netzwerkverkehrs (Abbildung 2), »-put« hingegen gibt die Ports aller Applikationen aus, die gerade über TCP kommunizieren (Abbildung 1). Beide Ausgaben sind nützlich, doch eigentlich interessiert auch die zeitliche Abfolge, nicht nur ein Sekundenschnappschuss.

Abbildung 1: Die Ausgabe des Kommandos »netstat -put« zeigt eine Liste aktiver TCP-Ports.

Abbildung 2: Das Kommando »netstat -s« liefert statistische Daten über den von Linux bewältigten Netzwerkverkehr.

Top fürs Netzwerk

Das Vorbild für eine solche dynamische Ausgabe liefert das Utility »top«, das Anzeigen für die Auslastung des Rechners, den Speicherverbrauch und weitere Eckdaten der laufenden Prozesse ständig auffrischt. Aus der statischen Ausgabe von »netstat« eine entsprechende dynamische Terminalapplikation zu erzeugen ist dank CPAN aber nicht weiter schwer.

Das Modul Curses::UI, das im Perl-Snapshot [2] schon einmal für einen Video-Selektor zum Einsatz kam, liefert auch hier das passende Framework. Es sorgt für die dynamischen Ausgaben und ermöglicht es, auf Tastendrücke des Users zu reagieren. Seine Eventschleife lässt sich leicht in den Kernel des Perl-Objekt-Environments (POE) einbinden, das den Ablauf vieler verschiedener Tasks in einem Prozess und einem Thread möglich macht.

Nicht einfrieren!

Hier ergibt sich bei allen GUI-Applikationen, die andere Programme aufrufen, ein Problem: Während die externe Anwendung läuft, reagiert die aufrufende nicht mehr auf Benutzereingaben und Mausklicks. Beim Anwender entsteht das Gefühl, sie sei eingefroren.

Das Kommando »netstat« läuft im Allgemeinen zwar recht zügig durch, mit der Option »-put« löst es jedoch auch IP-Adressen durch einen Reverse-DNS-Aufruf in Hostnamen auf. Bei einem langsamen DNS-Server oder vielen Sockets führt dies zu beachtlichen Verzögerungen. Dies ließe sich durch die Option »-n« verhindern, der Anwender müsste sich dann nur mit IP-Adressen begnügen. Das Beispiel besteht aber auf dem Luxus der Namensauflösung.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Episodenfilm

    Ein Perl-Skript mit GTK-2-Oberfläche merkt sich, wie weit sein Anwender gespeicherte Videos angesehen hat, und fährt auf Wunsch an der Stelle der letzten Unterbrechung wieder fort.

  • Tooltipps

    Procenv 0.16, Crun 0.1.3, Pstoedit 3.61,
    Muddog 1.0.0, Xidel 0.6, und PNG Crush.

  • Findet Memo

    Ein Archiv für Texte und andere Dokumente in Office-Formaten ist mit Oracle relativ einfach zu realisieren: Die Datenbank stellt dafür einen ganzen Werkzeugkasten mächtiger Funktionen bereit.

  • Besserwisser

    Dieses Tool weiß alles über geöffnete Dateien und Netzwerkverbindungen und verrät, welcher Prozess gerade welche Files und Sockets nutzt. Dabei gibt sich Lsof recht gesprächig. Passende Parameter reduzieren die Informationsflut und qualifizieren das Werkzeug gar für die Sicherheitsanalyse.

  • Unhide soll Rootkits aufdecken

    Verstecken Rootkits Ports und Prozesse, stoßen herkömmliche Analysemethoden schnell an Grenzen. Eine Möglichkeit, die unsichtbaren Eindringlinge zu finden soll die Software Unhide zur Verfügung stellen.

comments powered by Disqus

Ausgabe 09/2017

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.