Existe algum método no Linux para listar todos os namespaces no host em execução? Preciso verificar os namespaces para processos específicos (por exemplo, processos em execução no contêiner LXC e todos os outros processos no host) e, em seguida, descobrir cgroups deles.
24
Respostas:
Os utilitários para trabalhar com namespaces melhoraram desde que essa pergunta foi feita em 2013.
lsns
do pacote util-linux pode listar todos os diferentes tipos de namespaces, em vários formatos úteis.lsns
lista apenas o PID mais baixo de cada processo - mas você pode usá-pgrep
lo se desejar listar todos os processos pertencentes a um espaço para nome.por exemplo, se estou executando o gitlab na janela de encaixe e deseja encontrar todos os processos em execução nesse espaço para nome, posso:
e, em seguida, use esse pid (459) com
pgrep
:Eu também poderia usar o ID do espaço para nome (4026532661) com
ps
, por exemplo:fonte
Da página de manual ip para o espaço de nome da rede
ip netns - processo de gerenciamento de namespace de rede Um namespace de rede é logicamente outra cópia da pilha de rede, com rotas próprias, regras de firewall e dispositivos de rede.
Para espaços de nomes de outros tipos, talvez haja outras maneiras
fonte
Nsutils
O Nsutils pode listar o espaço de nomes usado
nslist
, mas também não requer raiz para ver os espaços de nome do usuárioNamespaces de rede :
Para o namespace de rede criado com
ip netns
, eles podem ser listados comip netns list
fonte
Namespace-Lister:
Você pode usar listns.py
Uso:
./listns.py
oupython2 listns.py
Explorando o sistema
Na configuração básica / padrão, o Ubuntu 12.04 e superior fornecem namespaces para (esses namespaces são mostrados para todos os processos no sistema. Se você executar como root)
O código python
O código python abaixo está listando todos os namespaces não padrão em um sistema. O fluxo do programa é
Exemplo:
Exemplo de
python2 listns.py
saída ... você pode canalizá-lo com classificação ou edição do script para atender às suas necessidadesFonte: github-mirror e artigo ; todo o crédito a Ralf Trezeciak
fonte