GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine praktische Ansicht des xargs-Befehls

Die täglichen Aufgaben des Systemadministrators sind für jeden immer anders; Es gibt jedoch einfache Aufgaben, die gleichermaßen auf verwalteten Systemen ausgeführt werden. In den Tagen, als Festplattenplatz zu Administratorenzeiten ein Risikofaktor war, war es äußerst wichtig, das Verzeichnis oder Dateisystem zum Debuggen zu finden.

Heutzutage ist es vor allem bei virtuellen Maschinen genauso wichtig, dass die verwalteten Systeme fehlerfrei sind und Speicherplatz für die Ausführung ihrer Prozesse und die Protokollierung ihrer Protokolldateien zur Verfügung haben.

[Das könnte Ihnen auch gefallen: Linux scripting:3 how-tos for while loops in Bash ]

Der beste Weg, um zu beginnen, besteht darin, die einfachsten Befehle zu verwenden, indem Sie ihre Ausgaben als Eingaben mit einer neuen Ausführung verknüpfen und so einen sogenannten Einzeiler bilden. Das heißt, den Befehlszeileninterpreter zu verwenden, um die Standardausgabe eines Befehls zu lesen und sie als Eingabevariable des nächsten Befehls einzusetzen. Dazu hilft der xargs-Befehl, diese Variable zu empfangen und auszuführen.

Sehen Sie sich ein praktisches Beispiel an:

Ticket RH0502201-1:Der Prodenv-Produktionsserver sendet Warnungen zu "wenig Speicherplatz auf dem Root-Dateisystem". Die Bereinigung des Dateisystems wird angefordert.

  1. Greifen Sie auf den Server zu und überprüfen Sie den Speicherplatz in /filesystem :


# df -h /

Filesystem                     Size  Used  Avail Use% Mounted on

/dev/mapper/prodenv--vg-root   720G  720G  0     100% /
  1. Wechseln Sie in das Stammverzeichnis, listen Sie die Verzeichnisse auf, und verwenden Sie zur Berechnung des in jedem Verzeichnis verwendeten Speicherplatzes eine pipe und xargs um das ls zu senden Befehlsausgabe an du Befehl:

# ls | xargs du -sk
  1. Mit einer pipe Verwenden Sie erneut den sort-Befehl, um die Ausgabe vom niedrigsten bis zum höchsten in den Verzeichnissen verwendeten Speicherplatz aufzulisten:


# ls | xargs du -sk | sort -n
  1. Für diesen Fall werden nur die Verzeichnisse mit dem meisten belegten Speicherplatz benötigt, sodass wir die Liste auf die letzten fünf Verzeichnisse in der Liste beschränken könnten. Mit einer anderen Pipe und dem tail-Befehl:


# ls | xargs du -sk | sort -n | tail -5

Hinweis : Wenn Sie die Fehlermeldung vermeiden möchten, bei der du Befehl nicht zugreifen konnte, senden Sie die Standardfehlerausgabe an das Gerät /dev/null:


# ls | xargs du -sk 2> /dev/null | sort -n | tail -5
  1. Wenn die Liste der Verzeichnisse definiert ist, verwenden Sie AWK, um eine neue sortierte Liste der Verzeichnisse zu erstellen, Spalte zwei der ursprünglichen Liste:


# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }'
  1. Die sortierte Liste wird als Variable an du übergeben um den verwendeten Platz in einem für Menschen lesbaren Format anzuzeigen. Verwenden Sie eine andere pipe und xargs :


# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }' | xargs du -sh
  1. Prüfen Sie, ob es möglich ist, die Dateien zu löschen oder zu komprimieren, die das Dateisystem überlasten, um so viel Speicherplatz wie möglich freizugeben.

Wahrscheinlich ist es möglich, die Schritte 5 und 6 zu vermeiden und die Reinigung direkt auszuführen. In vielen Fällen gehören diese Verzeichnisse jedoch zu einer Anwendung und benachrichtigen Sie den Verantwortlichen  Partei davon, um die Reinigung durchzuführen oder einfach als Nachweis des ausgeführten Prozesses für die Problemlösungsdokumentation.

Zum Schluss unser Einzeiler sieht wie folgt aus:


​​​​​​​# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }' | xargs du -sh

Dieser Einzeiler ist Teil meines Arsenals, das ich bei den täglichen Aufgaben als Systemadministrator verwende. Ich hoffe, Sie finden es nützlich. Und du? Was für Einzeiler Hast du was im Ärmel?

[ Holen Sie sich dieses kostenlose E-Book:Verwalten Ihrer Kubernetes-Cluster für Dummies. ]


Linux
  1. Meistern Sie den Linux-ls-Befehl

  2. 8 praktische Beispiele für den Linux-Xargs-Befehl für Anfänger

  3. Eine Einführung in den diff-Befehl

  4. Praktische Beispiele für den Unzip-Befehl unter Linux

  5. 5 praktische Beispiele des dd-Befehls unter Linux

5 Befehle zum Anzeigen des Inhalts einer Datei in der Linux-Befehlszeile

5 praktische Beispiele für den Read-Befehl unter Linux

Beispiele für xargs-Befehle unter Linux

Ein praktischer Leitfaden für den Chroot-Befehl unter Linux

Wie verwende ich den xargs-Befehl unter Linux?

Der apt-Befehl – ​​Ein praktischer Gebrauchsleitfaden