Hacer que el montaje no incluya sistemas de archivos "ficticios" (como df)

Hacer que el montaje no incluya sistemas de archivos "ficticios" (como df)

Cuando se utiliza mountpara enumerar simplemente todos los sistemas de archivos montados, ¿hay alguna forma de hacer que no enumere los sistemas de archivos "ficticios"? Eso es, haz que enumere solo los sistemas de archivos que dflo hacen.

EDITAR: por "ficticio" me refiero a los sistemas de archivos que se incluyen dfcuando se usa la --allopción, ya que así dflos llama la página de manual.

Respuesta1

En primer lugar, "tonto" probablemente no sea el mejor término procfs, sysfso dev(tmp)fsesté lejos de ser inútil. Utilice la -topción (tipo) mounty proporcione una lista separada por comas de los sistemas de archivos que le interesen:

mount -t tmpfs,xfs

o utilícelo greppara filtrar lo que desea (probablemente grep -vpara mostrar lo que no coincide):

mount | grep -Ev "(cgroup|proc|sysfs)"

Respuesta2

Otra opción es utilizar lsblk -f:

lsblk enumera información sobre todos los dispositivos de bloque disponibles o especificados.

Esto significa que los recursos compartidos de red (nfs, sshfs) o los sistemas de archivos virtuales (dev,run,sys,proc et al) son nodesplegado. Además, un tmpfssistema de archivos que normalmente se muestra df -hennoaparecer.

La -fopción genera información sobre los sistemas de archivos que incluye elpunto de montaje.

en mi máquina, por ejemplo, enumera:

NAME    FSTYPE          LABEL       UUID                                 MOUNTPOINT
sda                                                                      
|-sda1  ext2            bootpar     ab2e48a8-5f1c-484e-a4a1-f8545e4b2019 /boot
|-sda2  swap            swappar     6e9f6e70-141a-417c-82a5-113a3d4c5a53 [SWAP]
`-sda3  ext4            homepar     52f7164d-fac7-4abe-bf78-71353fac7850 /home
sdb     isw_raid_member                                                  
`-md126 ext4            rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sdc     isw_raid_member                                                  
`-md126 ext4            rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sr0                                                                      

Respuesta3

dfen GNU coreutils tiene una lista de tipos de sistemas de archivos ignorados, pero no contiene muchas entradas. En su mayor parte, elimina los sistemas de archivos que tienen un tamaño de 0. De todos modos, esto generalmente cubre los tipos de sistemas de archivos ignorados.

mountno tiene acceso directo al tamaño del sistema de archivos. Para obtener el mismo filtrado, necesitaría cotejar la salida de mountcon la salida de dfo alguna otra herramienta para obtener el tamaño del sistema de archivos.

Aquí hay una manera de obtener resultados ordenados de dfy mount, ordenarlos y unirlos.

join -o 2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9 <(df -P | tail -n +2 | sort) <(mount | sort)

Aquí hay otro enfoque con una sola línea de Python. (Perl es mucho mejor en este tipo de frases ingeniosas, pero no las tiene statvfsen su biblioteca estándar).

mount | python -c 'import os, sys; [sys.stdout.write(line) for (dev, line) in [(line.split(" ")[2], line) for line in sys.stdin.readlines()] if os.statvfs(dev).f_blocks]'

información relacionada