Como descobrir quantos sistemas de arquivos montados fisicamente existem?

2

Recentemente aprendi que você pode montar dois tipos diferentes de sistemas de arquivos: sistemas de arquivos lógicos e sistemas de arquivos físicos.

Pelo que entendi, os sistemas de arquivos físicos são o hardware localizado em discos fisicamente conectados à máquina.

Considerando que os sistemas de arquivos lógicos existem em algum lugar remotamente e são montados através de uma rede.

Um dia atrás, eu ssh em um servidor e executei o comando mount | wc -l e obtive a resposta 17. Hoje fiz o mesmo comando e obtive 70. Acredito que mount liste os sistemas de arquivos montados física e logicamente. / p>

Existe uma maneira de contar o número de apenas os sistemas de arquivos físicos que estão montados? De preferência com um comando curto?

    
por Jean Hans 07.04.2018 / 19:45

1 resposta

6

Os sistemas de arquivos "lógicos" não são necessariamente montados na rede. por exemplo, em seu sistema com 70 sistemas de arquivos montados, é provável que a maioria deles sejam sistemas de arquivos correspondentes a recursos do kernel em vez de sistemas de arquivos de rede. Os sistemas de arquivos lógicos incluem sysfs , proc , todos os sistemas de arquivos cgroup, tmpfs , devtmpfs , etc., que são todos sistemas de arquivos “locais”.

Sistemas de arquivos "não físicos" são identificados pelo kernel em /proc/filesystems usando nodev , então você pode usar isso para listar apenas sistemas de arquivos "físicos", usando findmnt :

findmnt -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \t)

Para contar os sistemas de arquivos, solte o cabeçalho e alimente a saída para wc -l :

findmnt -n -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \t) | wc -l

É possível montar esses tipos de sistemas de arquivos a partir de arquivos de imagem e outros arquivos que não são dispositivos, até mesmo dispositivos de blocos remotos pela rede; no entanto, esta abordagem lhe dará bons resultados na maioria dos sistemas.

Outra abordagem é começar pelos próprios dispositivos de disco, usando lsblk ; lsblk -f produzirá a árvore de dispositivos físicos através de quantas camadas forem necessárias para alcançar os sistemas de arquivos montados reais. Você pode combinar isso com as informações acima sobre sistemas de arquivos físicos para listar apenas os sistemas de arquivos que correspondem a um dispositivo de bloco no sistema:

lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \t)

Contando isso dá o resultado desejado:

lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \t) | wc -l
    
por 07.04.2018 / 20:11