Fazer montagem não listar sistemas de arquivos "fictícios" (como df)

3

Ao usar mount para simplesmente listar todos os sistemas de arquivos montados, existe alguma maneira de fazer com que não liste os sistemas de arquivos "fictícios"? Isso faz com que seja listada apenas os sistemas de arquivos que df faz.

EDIT : por "fictício" quero dizer os sistemas de arquivos que são incluídos por df quando você usa a opção --all , já que a página df man os chama.

    
por Matthew Cline 08.10.2014 / 08:58

3 respostas

2

Outra opção é usar lsblk -f :

lsblk lists information about all available or the specified block devices.

Isso significa que os compartilhamentos de rede (nfs, sshfs) ou sistemas de arquivos virtuais (dev, run, sys, proc e outros) não são exibidos . Além disso, um sistema de arquivos tmpfs , que normalmente é mostrado em df -h , não aparecerá .

A opção -f gera informações sobre os sistemas de arquivos que incluem o ponto de montagem .

na minha máquina, por exemplo, ele 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                                                                      
    
por 08.10.2014 / 09:47
2

Primeiro de tudo, "fictício" provavelmente não é o melhor termo - procfs , sysfs ou dev(tmp)fs estão longe de serem inúteis. Use a opção -t (type) para mount e alimente uma lista separada por vírgula de sistemas de arquivos nos quais você está interessado:

mount -t tmpfs,xfs

ou use grep para filtrar o que você deseja (provavelmente grep -v para mostrar o que não corresponde):

mount | grep -Ev "(cgroup|proc|sysfs)"
    
por 08.10.2014 / 09:23
1

df no GNU O coreutils tem uma lista de tipos de sistemas de arquivos ignorados, mas não contém muitas entradas. Na maior parte, elimina sistemas de arquivos que têm um tamanho de 0. Isso geralmente cobre os tipos de sistemas de arquivos ignorados de qualquer maneira.

mount não tem acesso direto ao tamanho do sistema de arquivos. Para obter a mesma filtragem, seria necessário agrupar a saída de mount com a saída de df ou alguma outra ferramenta para obter o tamanho do sistema de arquivos.

Aqui está uma maneira de obter a saída classificada de df e mount e classificar e ingressar nela.

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 um one-liner do Python. (Perl é muito melhor em tais linhas, mas não tem statvfs em 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]'
    
por 09.10.2014 / 02:38

Tags