Gibt es eine Methode in Linux, um alle Namespaces auf dem laufenden Host aufzulisten? Ich muss Namespaces für bestimmte Prozesse überprüfen (z. B. Prozesse, die im LXC-Container ausgeführt werden, und alle anderen Prozesse auf dem Host) und dann cgroups von ihnen herausfinden.
24
Antworten:
Die Dienstprogramme für die Arbeit mit Namespaces wurden verbessert, seit diese Frage 2013 gestellt wurde.
lsns
Mit dem Paket util-linux können Sie alle verschiedenen Typen von Namespaces in verschiedenen nützlichen Formaten auflisten .lsns
listet nur die niedrigste PID für jeden Prozess auf - aber Sie können diese PID mit verwenden,pgrep
wenn Sie alle Prozesse auflisten möchten, die zu einem Namespace gehören.Wenn ich zB gitlab im Docker laufen lasse und alle Prozesse in diesem Namespace finden möchte, kann ich:
und dann benutze diese pid (459) mit
pgrep
:Ich könnte auch die Namespace-ID (4026532661) mit verwenden
ps
, zB:quelle
Von der IP-Manpage für den Netzwerknamenraum
ip netns - Netzwerknamespace-Verwaltung verarbeiten Ein Netzwerknamespace ist logischerweise eine weitere Kopie des Netzwerkstapels mit eigenen Routen, Firewall-Regeln und Netzwerkgeräten.
Für Namensräume anderer Typen gibt es möglicherweise andere Möglichkeiten
quelle
Nsutils
Nsutils kann den verwendeten Namespace mit auflisten.
nslist
Es ist auch kein Root erforderlich, um die Namespaces der Benutzer anzuzeigenNetzwerk Namespaces :
Für Netzwerk-Namespaces, die mit erstellt wurden
ip netns
, können sie mit aufgelistet werdenip netns list
quelle
Namespace-Lister:
Sie können listns.py verwenden
Verwendung:
./listns.py
oderpython2 listns.py
Das System erkunden
In der Basis- / Standardkonfiguration stellen Ubuntu 12.04 und höher Namespaces für bereit (Diese Namespaces werden für jeden Prozess im System angezeigt. Wenn Sie als root ausgeführt werden).
Der Python-Code
Der folgende Python-Code listet alle nicht standardmäßigen Namespaces in einem System auf. Der Programmablauf ist
Beispiel:
Beispiel für
python2 listns.py
Ausgabe ... können Sie Rohr es mit Art oder bearbeiten das Skript an Ihre Bedürfnisse anzupassenQuelle: Github-Spiegel und Artikel ; Alle Verdienste um Ralf Trezeciak
quelle