Fehler filtern mit | grep "ERROR"
In diesem Schritt lernen Sie, wie Sie Netzwerkverkehr nach Fehlermeldungen filtern können, indem Sie den grep
-Befehl verwenden. Dies ist besonders nützlich, wenn Sie große Paketerfassungen analysieren und nur die Pakete sehen möchten, die Fehler enthalten. Der Pipe-Operator (|
) in Linux ermöglicht es Ihnen, die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden und so leistungsstarke Analyseworkflows zu erstellen.
Zunächst betrachten wir die Erfassungsdatei, die wir im vorherigen Schritt erstellt haben. Führen Sie den folgenden Befehl aus, um den Inhalt der pcap-Datei im Textformat anzuzeigen. Dadurch wird die binäre Paketdaten in eine menschenlesbare Form umgewandelt:
tcpdump -r ~/project/eth1_capture.pcap
Jetzt erstellen wir eine Beispielprotokolldatei, die sowohl normale als auch Fehlermeldungen enthält, um die Funktionsweise von grep
zu verstehen, bevor wir es auf echten Netzwerkverkehr anwenden:
echo -e "INFO: Connection established\nERROR: Authentication failed\nINFO: Data transfer complete\nERROR: Connection timeout" > ~/project/network.log
Um nur die Fehlermeldungen aus dieser Protokolldatei zu filtern, verwenden wir grep
mit dem Muster "ERROR". grep
durchsucht den Text zeilenweise und gibt nur die Zeilen aus, die dem Muster entsprechen:
grep "ERROR" ~/project/network.log
Sie sollten eine Ausgabe sehen, die nur die Fehlerzeilen enthält:
ERROR: Authentication failed
ERROR: Connection timeout
Jetzt wenden wir dies auf unsere tatsächliche Paketerfassung an. Zunächst müssen wir die pcap-Datei in ein lesbares Textformat umwandeln, da grep
mit Textdateien arbeitet. Dies erstellt eine Textversion unserer Paketerfassung:
tcpdump -r ~/project/eth1_capture.pcap > ~/project/packets.txt
Dann filtern wir nach allen Fehlermeldungen in den umgewandelten Paketdaten. Wir verwenden den -i
-Schalter, um die Suche Groß- und Kleinschreibungsegal zu machen, was bedeutet, dass es "error", "ERROR" oder jede andere Schreibweise findet:
grep -i "error" ~/project/packets.txt
Der -i
-Schalter macht die Suche Groß- und Kleinschreibungsegal. Wenn es Pakete mit "error" (in beliebiger Schreibweise) gibt, werden sie angezeigt. Dies hilft, sicherzustellen, dass wir keine Fehlermeldungen aufgrund unterschiedlicher Schreibweisen in Netzwerkprotokollen übersehen.