Cuando se utiliza mount
para 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 df
lo hacen.
EDITAR: por "ficticio" me refiero a los sistemas de archivos que se incluyen df
cuando se usa la --all
opción, ya que así df
los llama la página de manual.
Respuesta1
En primer lugar, "tonto" probablemente no sea el mejor término procfs
, sysfs
o dev(tmp)fs
esté lejos de ser inútil. Utilice la -t
opción (tipo) mount
y proporcione una lista separada por comas de los sistemas de archivos que le interesen:
mount -t tmpfs,xfs
o utilícelo grep
para filtrar lo que desea (probablemente grep -v
para 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 tmpfs
sistema de archivos que normalmente se muestra df -h
ennoaparecer.
La -f
opció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
df
en 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.
mount
no tiene acceso directo al tamaño del sistema de archivos. Para obtener el mismo filtrado, necesitaría cotejar la salida de mount
con la salida de df
o alguna otra herramienta para obtener el tamaño del sistema de archivos.
Aquí hay una manera de obtener resultados ordenados de df
y 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 statvfs
en 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]'