Apakah ada metode di Linux untuk mendaftar semua ruang nama pada host yang berjalan? Saya perlu memeriksa ruang nama untuk proses tertentu (misalnya proses yang berjalan di LXC-container dan semua proses lain di host) dan kemudian mencari tahu cgroups dari mereka.
24
Jawaban:
Utilitas untuk bekerja dengan ruang nama telah meningkat sejak pertanyaan ini diajukan pada 2013.
lsns
dari paket util-linux dapat mendaftar semua jenis ruang nama yang berbeda, dalam berbagai format yang bermanfaat.lsns
hanya mencantumkan PID terendah untuk setiap proses - tetapi Anda dapat menggunakan PID itu denganpgrep
jika Anda ingin membuat daftar semua proses yang termasuk dalam namespace.misalnya jika saya menjalankan gitlab di docker dan ingin menemukan semua proses yang berjalan di namespace itu, saya dapat:
dan, kemudian gunakan pid itu (459) dengan
pgrep
:Saya juga bisa menggunakan id namespace (4026532661) dengan
ps
, misalnya:sumber
Dari halaman manual ip untuk ruang nama jaringan
ip netns - proses manajemen namespace jaringan Sebuah namespace jaringan secara logis merupakan salinan dari tumpukan jaringan, dengan rute itu sendiri, aturan firewall, dan perangkat jaringan.
Untuk spasi nama jenis lain, mungkin ada cara lain
sumber
Nsutils
Nsutils dapat membuat daftar namespace yang digunakan
nslist
, dan juga tidak memerlukan root untuk melihat ruang nama penggunaRuang nama jaringan :
Untuk namespace jaringan dibuat dengan
ip netns
, mereka dapat didaftar denganip netns list
sumber
Namespace-Lister:
Anda dapat menggunakan listns.py
Penggunaan:
./listns.py
ataupython2 listns.py
Menjelajahi sistem
Dalam pengaturan dasar / default Ubuntu 12.04 dan lebih tinggi menyediakan namespace untuk (namespace ini ditampilkan untuk setiap proses dalam sistem. Jika Anda menjalankan sebagai root)
Kode python
Kode python di bawah ini mencantumkan semua ruang nama non-standar dalam suatu sistem. Alur programnya adalah
Contoh:
Contoh
python2 listns.py
output ... Anda dapat menyalurkannya dengan mengurutkan atau mengedit skrip untuk memenuhi kebutuhan AndaSumber: github-mirror dan artikel ; semua kredit untuk Ralf Trezeciak
sumber