Netzwerkdatenpaketstatistiken

LinuxBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du ein Zsh-Skript erstelst, das den Netzwerkkommunikationsstatus eines bestimmten Ports überwacht. Das Skript wird die Anzahl der gesendeten und empfangenen Datenpakete auf dem angegebenen Port innerhalb eines Zeitraums von 3 Sekunden zählen.

👀 Vorschau

## Beispiel
$ sh /home/labex/project/netcheck.sh 22
Pakete: 2

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du ein Zsh-Skript erstelst, das eine Portnummer als Eingabeparameter akzeptiert
  • Wie du die tcpdump-Befehl verwendest, um Pakete für den angegebenen Port zu erfassen und zu zählen
  • Wie du einen Zeitüberschreitung von 3 Sekunden für die Skriptausführung mit dem timeout-Befehl einstellst
  • Wie du die Anzahl der Pakete in einem benutzerfreundlichen Format ausgibst

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Ein Skript zu entwickeln, das den Netzwerkkommunikationsstatus eines bestimmten Ports überwachen kann
  • Verstehen, wie du in einem Zsh-Skript übliche Linux-Befehle wie tcpdump und timeout verwendest
  • Erfahrung im Schreiben und Testen von Shell-Skripten zur Lösung praktischer Probleme gewinnen

Erstelle das netcheck.sh-Skript

In diesem Schritt erstelst du das netcheck.sh-Skript, das die Anzahl der gesendeten und empfangenen Pakete für einen angegebenen Port innerhalb eines Zeitraums von 3 Sekunden zählt.

  1. Öffne einen Texteditor und erstelle in das Verzeichnis /home/labex/project eine neue Datei namens netcheck.sh.
  2. Füge dem netcheck.sh-Skript folgenden Code hinzu:
#!/bin/zsh

## Dieses Skript zählt die Anzahl der gesendeten und empfangenen Pakete für einen angegebenen Port innerhalb eines Zeitraums von 3 Sekunden mithilfe von tcpdump.

## Überprüfen, ob das Portnummer-Argument angegeben wurde
if [ $## -eq 0 ]; then
  echo "Bitte geben Sie die zu zählende Portnummer als Argument an."
  exit 1
fi

## Holen Sie sich die eingegebene Portnummer
port=$1

## Verwenden Sie den timeout-Befehl, um einen Zeitüberschreitung von 3 Sekunden festzulegen und verwenden Sie tcpdump, um die Anzahl der Pakete für den angegebenen Port zu zählen
packages=$(timeout 3 tcpdump -c 0 -i any "port $port" 2> /dev/null | wc -l)

## Geben Sie die Anzahl der Pakete aus
echo "Pakete: $packages"
  1. Speichere die netcheck.sh-Datei.

Teste das netcheck.sh-Skript

In diesem Schritt testest du das netcheck.sh-Skript, um sicherzustellen, dass es wie erwartet funktioniert.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  2. Führe das netcheck.sh-Skript mit der Portnummer 22 als Argument aus:
sh /home/labex/project/netcheck.sh 22
  1. Das Skript sollte die Anzahl der gesendeten und empfangenen Pakete auf Port 22 innerhalb des 3-Sekunden-Zeitraums ausgeben, z. B.:
Pakete: 2
  1. Versuche, das Skript mit verschiedenen Portnummern auszuführen, um sicherzustellen, dass es richtig funktioniert.

Verstehe das netcheck.sh-Skript

In diesem Schritt wirst du den Code im netcheck.sh-Skript verstehen.

  1. Das Skript beginnt mit einer Shebang-Zeile #!/bin/zsh, um anzugeben, dass es mit der Zsh-Shell ausgeführt werden soll.
  2. Das Skript überprüft, ob ein Portnummer-Argument angegeben wurde. Wenn nicht, gibt es eine Fehlermeldung aus und beendet sich.
  3. Das Skript weist die angegebene Portnummer der Variablen port zu.
  4. Das Skript verwendet den timeout-Befehl, um einen Zeitüberschreitung von 3 Sekunden festzulegen und verwendet dann den tcpdump-Befehl, um die Anzahl der Pakete für den angegebenen Port zu zählen. Die Option -c 0告诉tcpdump,捕获所有数据包,而"port $port"过滤器确保只计算指定端口的数据包。
  5. Das Skript fängt die Ausgabe des tcpdump-Befehls ab und zählt die Anzahl der Zeilen mit wc -l, was die Gesamtzahl der Pakete angibt.
  6. Schließlich gibt das Skript die Anzahl der Pakete aus mit echo "Pakete: $packages".

Herzlichen Glückwunsch! Sie haben erfolgreich das netcheck.sh-Skript erstellt und getestet, um den Netzwerkkommunikationsstatus zu überwachen. Sie können das Skript gerne weiter erkunden und an Ihre Bedürfnisse anpassen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Übungen absolvieren, um Ihre Fähigkeiten zu verbessern.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben