Geben diese Befehle auf verschiedenen Linux-Distributionen die gleiche Ausgabe zurück?

Geben diese Befehle auf verschiedenen Linux-Distributionen die gleiche Ausgabe zurück?

Ich schreibe ein Überwachungsskript. Ich führe es auf einer bestimmten Maschine aus und es funktioniert. Es ist geplant, es auf mehreren Linux-Maschinen auszuführen und nicht an eine einzelne Distribution gebunden zu sein.

Hier sind die Befehle und die damit verbundenen Behandlungen, die ich durchführe:
1) CPU-Auslastung:

top -bn 2 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
92%
93% 

Ich protokolliere beide Werte.

2) RAM-Nutzung

free -m

_____total        used        free      shared buff/cache   available <br>
 Mem 3791        1183         875          16        1732        2326 <br>
 Swap 3071           0        3071

Protokollieren Sie sowohl den verwendeten Speicher als auch den Swap-Speicher insgesamt

3) Festplattennutzung:

df

(behalten Sie nur die Spalten 2 und 3, die jeweils die Gesamtzahl der 1024-Bit-Blöcke und die verwendeten Blöcke angeben):

 1K_blocks used_blocks
 27740944 1996820
  1931168       0
  1941352       0
  1941352   16904
  1941352       0
   508588  151576
   388272       0

Ich vergleiche die Summen beider Spalten, um den gesamten Speicherplatz zu erhalten.

4) Betriebszeit:

PS C:\> invoke-sshcommand -ComputerName $ip {uptime}
09:39:01 up 13 days, 21:37,  1 user,  load average: 0,00, 0,01, 0,05

Schneiden Sie diese Zeichenfolge aus und protokollieren Sie nützliche Daten.

Liefern diese Befehle unabhängig von der Linux-Distribution genau die gleiche Ausgabe? Allgemeiner gefragt: Wäre eine Befehls- und Datenbehandlung bei jeder beliebigen Verteilung noch gültig?

Antwort1

Liefern diese Befehle unabhängig von der Linux-Distribution genau die gleiche Ausgabe?

Vielleicht, aber Sie können sich dessen nicht sicher sein.

Es gibt Hunderte von Linux-Distributionen (DistroWatchzählt 280 davon) und Sie können nicht die Garantie haben, dass ein für einen geschriebenes Skript funktioniert - oder wirdweitermachenzum Arbeiten - auf einem anderen, insbesondere wenn dort eine Nicht-POSIX-Option oder ein Nicht-POSIX-Flag verwendet wird.

Anstatt sich auf die Ausgabe von Befehlen zu verlassen, sollten Sie die Daten direkt aus dem /procPseudodateisystem übernehmen.

verwandte Informationen