Aus Linux-Magazin 02/2013

Aus dem Alltag eines Sysadmin: Ifdata

© Ivan Mikhaylov, 123RF.com

Wie schon in der vorigen Ausgabe stellt Charly wieder ein Tool vor, das seine Stärken besonders in Skripten ausspielt. Ifdata aus dem Moreutils-Paket liefert Statusinformationen von Netzwerk-Interfaces absolut passgenau. Das Herausmeißeln einzelner Werte ist nun nicht mehr nötig.

Wenn ich ein Skript schreibe und darin die Information benötige, ob ein bestimmtes Interface existiert, und wenn ja, welche IP-Adresse und MTU es gerade hat, entsteht fast zwangsläufig sperriger Code. Ich bewerfe dann das Ergebnis von »ip addr show eth0« , »ifconfig« oder »iwconfig« so lange mit »grep« , »cut« und regulären Ausdrücken, bis die gewünschte Information herausgemeißelt ist.

Ifdata aus dem Moreutils-Paket [1] dagegen löst meine Aufgabenstellung elegant und einfach. Mit Parametern steuere ich die Ifdata-Ausgabe so, dass nur das gesuchte Ergebnis erscheint und mehr nicht – das ist ideal, um es in einem Skript weiterzuverarbeiten.

Zunächst möchte ich herausfinden, ob ein bestimmtes Netzwerkinterface überhaupt existiert: »ifdata -e eth0« . Der Befehl erzeugt keine Ausgabe. Ob die Schnittstelle existiert, verrät der Rückgabewert. In einem Skript ist das sehr praktisch, wenn ich ohne weitere Klimmzüge verzweigen will:

if $(ifdata -e eth0); then
    echo "Interface gefunden";[...]
else
    echo "Interface nicht gefunden";[...]
fi

Eine für Menschen lesbare Ausgabe gibt es auch. Der Parameter »-pe« sorgt dafür, dass Ifdata ein »yes« oder »no« ausgibt. Mit einer Minischleife kann ich mir schnell einen Überblick verschaffen, wie viele Interfaces gerade aktiv sind:

$ for i in `seq 0 3`;do ifdata -pe eth$i;done
yes
yes
yes
no

Die Testmaschine hat vier Interfaces, benutzt aber nur drei.

Basisarbeit

Die am häufigsten benötigten Daten – IP-Adresse, Netzmaske, Broadcastadresse und MTU – zeigt Ifdata durch Leerzeichen getrennt mit dem Parameter »-p« an:

$ ifdata -p eth0
10.0.0.106 255.255.255.0 10.0.0.255 1500

Diese Informationen bekäme ich durch Angabe von »-pa« , »-pn« , »-pb« und »-pm« auch einzeln. Wenn ich wissen will, ob das Interface gerade im Promiscuous Mode ist, lasse ich mir per

$ ifdata -pf eth0

eine Liste der Flags zusammenstellen (Abbildung 1). Die Elemente der Liste einzeln abzufragen funktioniert allerdings nicht – zum Glück, denn wer soll sich bitte die ganzen Parameter merken?! Dafür gibt es noch Daten über den Netzwerkverkehr und Fehlerzustände zu eruieren. So kann ich etwa mit

$ ifdata -soe eth0

den Fehlerzähler auslesen – und mich beruhigt anderen Sachen zuwenden, denn der steht auf null.

Abbildung 1: Ifdata schaut nach, welche Flags der Netzwerkschnittstelle gehisst sind.

Abbildung 1: Ifdata schaut nach, welche Flags der Netzwerkschnittstelle gehisst sind.

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben