GNU/Linux >> Linux Esercitazione >  >> Linux

Esplorazione del filesystem Linux /proc

Il /proc il filesystem sembra esistere sempre perché è creato all'avvio e viene rimosso allo spegnimento, ma in realtà è un filesystem virtuale che contiene molte informazioni rilevanti sul tuo sistema e sui suoi processi in esecuzione. In questo articolo, approfondirò i suoi contenuti e il valore che tu, come amministratore di sistema, puoi ricavarne.

Nota:sto accedendo a file e directory in /proc come utente standard e non come root se non diversamente specificato.

Se guardi i file sotto /proc , ne vedrai molti (oltre 150), a seconda di quanti processi hai in esecuzione.

$ ls /proc
1     174    26    2902   4109   531          fb
10    175    2601  2904   41275  546          filesystems
1004  176    2602  2907   41292  547          fs
<snip>
166   2589   2889  4000   47452  dma          vmstat
167   2594   2898  4005   475    driver       zoneinfo
168   2595   29    40986  522    execdomains

I file numerati sono directory che corrispondono a numeri di processo o ID di processo (PID). Ad esempio, nella prima colonna ci sono processi con i numeri 1, 10, 1055, 1057, 1059 e così via. All'interno di quelle directory numerate di processo, ci sono più file che hanno a che fare con i processi stessi. Di seguito è riportato un elenco di /proc/411 directory.

$ ls /proc/411
ls: cannot read symbolic link /proc/411/cwd: Permission denied
ls: cannot read symbolic link /proc/411/root: Permission denied
ls: cannot read symbolic link /proc/411/exe: Permission denied
arch_status      fdinfo      numa_maps      smaps_rollup
attr             gid_map     oom_adj        stack
autogroup        io          oom_score      stat
auxv             latency     oom_score_adj  statm
cgroup           limits      pagemap        status
clear_refs       loginuid    patch_state    syscall
cmdline          map_files   personality    task
comm             maps        projid_map     timers
coredump_filter  mem         root           timerslack_ns
cpuset           mountinfo   sched          uid_map
cwd              mounts      schedstat      wchan
environ          mountstats  sessionid
exe              net         setgroups
fd               ns          smaps

Ci sono alcuni file in ogni directory che gli utenti normali non possono leggere. Per elencare o aprire quei file, devi essere root.

[ Se desideri vedere un uso pratico delle informazioni di /proc, dai un'occhiata a:Come cancellare la memoria di scambio in Linux ]

Noterai che un lungo elenco (ls -l /proc ) rivela che i normali file di testo hanno una dimensione pari a 0. Normalmente, un file di dimensioni zero significa che non contiene contenuto. Tuttavia, questi /proc file, come /proc filesystem stesso (procfs ), sono virtuali. Loro fanno contengono informazioni oppure perché dovrebbero essere lì?

Ad esempio, visualizza il cpuinfo file sullo schermo e vedrai cosa intendo.

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 142
model name	: Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
stepping	: 9
cpu MHz		: 2303.998
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d
bogomips	: 4607.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

Questo file contiene informazioni sulle tue CPU. Molti dei normali file di testo contengono informazioni sull'hardware e sul sistema e puoi cat come faresti con qualsiasi altro file di testo. Ricorda di ignorare la dimensione del file pari a zero.

Nella prossima puntata di questo /proc serie di filesystem, spiegherò le informazioni fornite nei file. Puoi esplorare anche tu stesso. La maggior parte dei file ha nomi che descrivono le informazioni che contengono. Alcuni file sono più preziosi di altri per la mente umana. Non tutti i file hanno cpuinfo o meminfo informazioni a livello di livello che sono preziose per un amministratore di sistema, ma le informazioni possono essere importanti per sviluppatori, produttori di hardware o personale di risoluzione dei problemi dei fornitori.

[ Hai bisogno di saperne di più sull'amministrazione del sistema Linux? Prendi in considerazione un corso di amministrazione di sistema Red Hat. ]


Linux
  1. Gestisci la directory Linux /tmp come un capo

  2. Importanti file di filesystem Linux /proc che devi conoscere

  3. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  4. La differenza tra /opt e /usr/local?

  5. Linux – Perdo file se scarico la cache (echo 3> /proc/sys/vm/drop_caches)?

Il modo giusto per modificare i file /etc/passwd e /etc/group in Linux

Una guida al file system '/proc' in Linux

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

/proc/[pid]/pagemaps e /proc/[pid]/maps | Linux

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?