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-queryundipverwendest, 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.
Öffne einen Texteditor und erstelle in dem Verzeichnis
/home/labex/projecteine neue Datei namensgetinfo.sh.Füge am Anfang der Datei die folgende Shebang-Zeile hinzu:
#!/bin/zshDiese Zeile gibt an, dass das Skript mit der zsh-Shell ausgeführt werden soll.
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.
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.
Öffne das Skript
getinfo.shin einem Texteditor.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/cpuinfozu zählen, was die Anzahl der Prozessoren darstellt.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.
Öffne das Skript
getinfo.shin einem Texteditor.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
freemit der Option-g, um die Gesamtgröße des Arbeitsspeichers in Gigabyte abzurufen. Die zweite Funktion verwendet den Befehlfreemit der Option-m, um die verfügbare Arbeitsspeichergröße in Megabyte abzurufen.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.
Öffne das Skript
getinfo.shin einem Texteditor.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
dfmit der Option-h, um die Gesamtgröße des auf das Wurzelverzeichnis (/) gemontierten Dateisystems abzurufen und extrahiert dann den Größenwert mitawk.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.
Öffne das Skript
getinfo.shin einem Texteditor.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.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.
Öffne das Skript
getinfo.shin einem Texteditor.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 Befehlwc.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.
Öffne das Skript
getinfo.shin einem Texteditor.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 Befehlwc.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.
Öffne das Skript
getinfo.shin einem Texteditor.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 mitawkundsed.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.
Öffne das Skript
getinfo.shin einem Texteditor.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.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.



