Faça com que a montagem não liste sistemas de arquivos "fictícios" (como df)

Faça com que a montagem não liste sistemas de arquivos "fictícios" (como df)

Ao usar mountpara simplesmente listar todos os sistemas de arquivos montados, existe alguma maneira de fazer com que ele não liste sistemas de arquivos "fictícios"? É isso, faça com que liste apenas os sistemas de arquivos que dfo fazem.

EDITAR: por "fictício" quero dizer os sistemas de arquivos que são incluídos dfquando você usa a --allopção, já que é assim que a dfpágina de manual os chama.

Responder1

Em primeiro lugar, "manequim" provavelmente não é o melhor termo - procfsou sysfsestá dev(tmp)fslonge de ser inútil. Use a -topção (type) para mounte alimente-a com uma lista separada por vírgulas de sistemas de arquivos nos quais você está interessado:

mount -t tmpfs,xfs

ou use greppara filtrar o que deseja (provavelmente grep -vpara mostrar o que não corresponde):

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

Responder2

Outra opção é usar lsblk -f:

lsblk lista informações sobre todos os dispositivos de bloco disponíveis ou especificados.

Isso significa que compartilhamentos de rede (nfs, sshfs) ou sistemas de arquivos virtuais (dev,run,sys,proc et al) são nãoexibido. Além disso, um tmpfssistema de arquivos que normalmente é mostrado df -hemnãoaparecer.

A -fopção gera informações sobre sistemas de arquivos que incluem oponto de montagem.

na minha máquina, por exemplo, lista:

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                                                                      

Responder3

dfno GNU coreutils possui uma lista de tipos de sistemas de arquivos ignorados, mas não contém muitas entradas. Na maior parte, ele elimina sistemas de arquivos com tamanho 0. Isso geralmente cobre os tipos de sistemas de arquivos ignorados.

mountnão tem acesso direto ao tamanho do sistema de arquivos. Para obter a mesma filtragem, você precisaria agrupar a saída de mountcom a saída de dfou alguma outra ferramenta para obter o tamanho do sistema de arquivos.

Esta é uma maneira de classificar a saída de dfand mounte classificá-la e juntá-la.

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)

Aqui está outra abordagem com uma linha única do Python. (Perl é muito melhor nessas linhas simples, mas não possui statvfsem sua biblioteca padrão.)

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]'

informação relacionada