Existe-t-il une méthode sous Linux pour répertorier tous les espaces de noms sur l'hôte en cours d'exécution? J'ai besoin de vérifier les espaces de noms pour des processus particuliers (par exemple, les processus s'exécutant dans le conteneur LXC et tous les autres processus sur l'hôte), puis de trouver des groupes de contrôle d'entre eux.
24
Réponses:
Les utilitaires pour travailler avec les espaces de noms se sont améliorés depuis que cette question a été posée en 2013.
lsns
du paquet util-linux peut lister tous les différents types d'espaces de noms, dans différents formats utiles.lsns
répertorie uniquement le PID le plus bas pour chaque processus - mais vous pouvez utiliser ce PID avecpgrep
si vous souhaitez répertorier tous les processus appartenant à un espace de noms.Par exemple, si j'exécute gitlab dans Docker et que je veux trouver tous les processus en cours d'exécution dans cet espace de noms, je peux:
puis, utilisez ce pid (459) avec
pgrep
:Je pourrais également utiliser l'identifiant de l'espace de noms (4026532661) avec
ps
, par exemple:la source
Depuis la page de manuel ip pour l'espace de nom du réseau
ip netns - processus de gestion de l'espace de noms réseau Un espace de noms réseau est logiquement une autre copie de la pile réseau, avec ses propres routes, règles de pare-feu et périphériques réseau.
Pour les espaces de noms d'autres types, il existe peut-être d'autres façons
la source
Nsutils
Nsutils peut lister les espaces de noms utilisés avec
nslist
, il n'a pas non plus besoin de root pour voir les espaces de noms des utilisateursEspaces de noms réseau :
Pour les espaces de noms de réseau créés avec
ip netns
, ils peuvent être répertoriés avecip netns list
la source
Espace de noms-Lister:
Vous pouvez utiliser listns.py
Utilisation:
./listns.py
oupython2 listns.py
Explorer le système
Dans la configuration de base / par défaut, Ubuntu 12.04 et versions ultérieures fournissent des espaces de noms pour (Ces espaces de noms sont affichés pour chaque processus du système. Si vous exécutez en tant que root)
Le code python
Le code python ci-dessous répertorie tous les espaces de noms non par défaut dans un système. Le déroulement du programme est
Exemple:
Exemple de
python2 listns.py
sortie ... vous pouvez le diriger avec le tri ou modifier le script pour l'adapter à vos besoinsSource: github-mirror et article ; tout crédit à Ralf Trezeciak
la source