Abrufen von Linux-Serverinformationen

LinuxBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du Systeminformationen auf einem Linux-Server abrufen und anzeigen kannst. Das Skript getinfo.sh, das du erstellen wirst, kann verwendet werden, um wichtige Details über die Hardware, Software und Netzwerkkonfiguration des Servers schnell zu sammeln.

👀 Vorschau

$ sh getinfo.sh
## Beispiel
cpu num: 8
memory total: 30 G
memory free: 10867 M
disk size: 20G
system bit: 64
process: 40
software num: 1389
ip: 1.32.X.X

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Anzahl der Prozessoren, den gesamten Arbeitsspeicher, den verfügbaren Arbeitsspeicher, die Festplattengröße, die Systembitzahl, die Anzahl der laufenden Prozesse, die Anzahl der installierten Softwarepakete und die IP-Adresse des Servers abrufen kannst.
  • Wie du verschiedene Linux-Befehle und Tools wie grep, free, df, getconf, ps, dpkg-query und ip verwendest, um Systeminformationen zu sammeln.
  • Wie du ein zsh-Skript schreibst, das diese Befehle kombiniert, um einen umfassenden Überblick über den Serverzustand zu geben.

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Zu verstehen, wie du die automatische Sammlung von Systeminformationen mit Shell-Scripting durchführst.
  • Vertraut zu werden mit gängigen Linux-Befehlen und ihren Anwendungen.
  • Ein wiederverwendbares Skript zu erstellen, das ausgeführt werden kann, um wichtige Serverdetails schnell abzurufen und anzuzeigen.
  • Dein neues Wissen anzuwenden, um Linux-Systeme effizienter zu überwachen und zu reparieren.

Erstelle das Skript getinfo.sh

In diesem Schritt erstellst du das Skript getinfo.sh im Verzeichnis /home/labex/project.

  1. Öffne einen Texteditor und erstelle in dem Verzeichnis /home/labex/project eine neue Datei namens getinfo.sh.

  2. Füge am Anfang der Datei die folgende Shebang-Zeile hinzu:

    #!/bin/zsh
    

    Diese Zeile gibt an, dass das Skript mit der zsh-Shell ausgeführt werden soll.

  3. Füge den folgenden Kommentar zum Skript hinzu:

    ## getinfo.sh - Linux System Information Script
    ## Dieses Skript ruft CPU-, Arbeitsspeicher-, Festplatten- und andere Informationen eines Linux-Servers ab.
    

    Diese Kommentare geben eine kurze Beschreibung des Zwecks des Skripts.

  4. Speichere die Datei.

Abrufen von CPU-Informationen

In diesem Schritt fügst du einer Funktion zum Skript getinfo.sh hinzu, um die Anzahl der Prozessoren abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge der folgenden Funktion hinzu:

    ## Funktion: Abrufen von CPU-Informationen
    cpu_num=$(grep -c '^processor' /proc/cpuinfo)
    

    Diese Funktion verwendet den Befehl grep, um die Anzahl der Prozessoreinträge in der Datei /proc/cpuinfo zu zählen, was die Anzahl der Prozessoren darstellt.

  3. Speichere die Änderungen am Skript.

Abrufen von Speicherinformationen

In diesem Schritt fügst du Funktionen zum Skript getinfo.sh hinzu, um die Gesamtgröße des Arbeitsspeichers und die verfügbare Arbeitsspeichergröße abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge den folgenden Funktionen hinzu:

    ## Funktion: Abrufen der Gesamtgröße des Arbeitsspeichers (in GB)
    memory_total=$(free -g | awk '/^Mem:/ {print $2}')
    
    ## Funktion: Abrufen der verfügbaren Arbeitsspeichergröße (in MB)
    memory_free=$(free -m | awk '/^Mem:/ {print $4}')
    

    Die erste Funktion verwendet den Befehl free mit der Option -g, um die Gesamtgröße des Arbeitsspeichers in Gigabyte abzurufen. Die zweite Funktion verwendet den Befehl free mit der Option -m, um die verfügbare Arbeitsspeichergröße in Megabyte abzurufen.

  3. Speichere die Änderungen am Skript.

Abrufen von Datenträgerinformationen

In diesem Schritt fügst du einer Funktion zum Skript getinfo.sh hinzu, um die Gesamtgröße der auf das Wurzelverzeichnis gemontierten Dateisysteme abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge der folgenden Funktion hinzu:

    ## Funktion: Abrufen der Gesamtgröße der Wurzelfestplatte (in GB)
    disk_size=$(df -h / | awk '/\// {print $2}')
    

    Diese Funktion verwendet den Befehl df mit der Option -h, um die Gesamtgröße des auf das Wurzelverzeichnis (/) gemontierten Dateisystems abzurufen und extrahiert dann den Größenwert mit awk.

  3. Speichere die Änderungen am Skript.

Abrufen von System-Bit-Informationen

In diesem Schritt fügst du einer Funktion zum Skript getinfo.sh hinzu, um die System-Bit-Informationen abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge der folgenden Funktion hinzu:

    ## Funktion: Abrufen des System-Bits
    system_bit=$(getconf LONG_BIT)
    

    Diese Funktion verwendet den Befehl getconf, um die Anzahl der Bits, die das System verwendet, abzurufen.

  3. Speichere die Änderungen am Skript.

Abrufen von Prozessinformationen

In diesem Schritt fügst du einer Funktion zum Skript getinfo.sh hinzu, um die Anzahl der aktuell laufenden Prozesse abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge der folgenden Funktion hinzu:

    ## Funktion: Abrufen der Anzahl der aktuell laufenden Prozesse
    process=$(ps -ef | wc -l)
    

    Diese Funktion verwendet den Befehl ps, um alle laufenden Prozesse aufzulisten, und zählt dann die Anzahl der Zeilen mit dem Befehl wc.

  3. Speichere die Änderungen am Skript.

Abrufen von Softwareinformationen

In diesem Schritt fügst du einer Funktion zum Skript getinfo.sh hinzu, um die Anzahl der installierten Software-Pakete abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge der folgenden Funktion hinzu:

    ## Funktion: Abrufen der Anzahl der installierten Software-Pakete
    software_num=$(dpkg-query -f '${binary:Package}\n' -W | wc -l)
    

    Diese Funktion verwendet den Befehl dpkg-query, um alle installierten Software-Pakete aufzulisten, und zählt dann die Anzahl der Zeilen mit dem Befehl wc.

  3. Speichere die Änderungen am Skript.

Abrufen von IP-Adresseninformationen

In diesem Schritt fügst du einer Funktion zum Skript getinfo.sh hinzu, um die IP-Adresse der Netzwerkschnittstelle eth0 abzurufen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge der folgenden Funktion hinzu:

    ## Funktion: Abrufen der IP-Adresse von eth0
    ip=$(ip addr show eth0 | awk '/inet / {print $2}' | sed 's|/.*||')
    

    Diese Funktion verwendet den Befehl ip, um die IP-Adresse der Netzwerkschnittstelle eth0 abzurufen und extrahiert dann die IP-Adresse mit awk und sed.

  3. Speichere die Änderungen am Skript.

Gebe die Systeminformationen aus

In diesem letzten Schritt fügst du den Ausgabeteil zum Skript getinfo.sh hinzu, um die Systeminformationen anzuzeigen.

  1. Öffne das Skript getinfo.sh in einem Texteditor.

  2. Füge dem Skript den folgenden Ausgabeteil hinzu:

    ## Ausgabeinformationen
    echo "cpu num: $cpu_num"
    echo "memory total: $memory_total G"
    echo "memory free: $memory_free M"
    echo "disk size: $disk_size"
    echo "system bit: $system_bit"
    echo "process: $((process - 1))"
    echo "software num: $software_num"
    echo "ip: $ip"
    

    Dieser Teil verwendet den Befehl echo, um die Systeminformationen im erforderlichen Format auszugeben.

  3. Speichere die Änderungen am Skript.

Herzlichen Glückwunsch! Du hast jetzt das Skript getinfo.sh abgeschlossen. Du kannst das Skript ausführen, indem du folgenden Befehl im Terminal ausführst:

sh getinfo.sh

Das Skript wird die Systeminformationen gemäß den Projektanforderungen ausgeben.

## Beispiel
cpu num: 8
memory total: 30 G
memory free: 10867 M
disk size: 20G
system bit: 64
process: 40
software num: 1389
ip: 1.32.X.X

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.

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