¿Hay algún método en Linux para enumerar todos los espacios de nombres en el host en ejecución? Necesito verificar los espacios de nombres para procesos particulares (por ejemplo, procesos que se ejecutan en el contenedor LXC y todos los demás procesos en el host) y luego encontrar grupos de ellos.
24
Respuestas:
Las utilidades para trabajar con espacios de nombres han mejorado desde que se hizo esta pregunta en 2013.
lsns
del paquete util-linux puede enumerar todos los diferentes tipos de espacios de nombres, en varios formatos útiles.lsns
solo enumera el PID más bajo para cada proceso, pero puede usar ese PIDpgrep
si desea enumerar todos los procesos que pertenecen a un espacio de nombres.por ejemplo, si estoy ejecutando gitlab en docker y quiero encontrar todos los procesos que se ejecutan en ese espacio de nombres, puedo:
y luego usa ese pid (459) con
pgrep
:También podría usar la identificación del espacio de nombres (4026532661) con
ps
, por ejemplo:fuente
Desde la página de manual de ip para el espacio de nombre de red
ip netns: gestión de espacio de nombres de red de proceso Un espacio de nombres de red es lógicamente otra copia de la pila de red, con sus propias rutas, reglas de firewall y dispositivos de red.
Para espacios de nombres de otros tipos, tal vez hay otras formas
fuente
Nsutils
Nsutils puede enumerar el espacio de nombres utilizado
nslist
, tampoco requiere root para ver los espacios de nombres de usuarioEspacios de nombres de red :
Para el espacio de nombres de red creado con
ip netns
, pueden enumerarse conip netns list
fuente
Espacio de nombres-Lister:
Puedes usar listns.py
Uso:
./listns.py
opython2 listns.py
Explorando el sistema
En la configuración básica / predeterminada, Ubuntu 12.04 y superior proporcionan espacios de nombres para (Estos espacios de nombres se muestran para cada proceso en el sistema. Si ejecuta como root)
El código de python
El siguiente código de Python enumera todos los espacios de nombres no predeterminados en un sistema. El flujo del programa es
Ejemplo:
Ejemplo de
python2 listns.py
salida ... puede canalizarlo con ordenar o editar el script para satisfacer sus necesidadesFuente: github-mirror y artículo ; todo crédito a Ralf Trezeciak
fuente