Somente sistemas de arquivos atualmente montados
Se você estiver disposto a se limitar a sistemas de arquivos ZFS atualmente montados , poderá analisar /proc/mounts
e não precisará de nenhum conhecimento específico do ZFS (a menos que deseje restringir-se especificamente ao arquivo ZFS sistemas).
Isso pode ou não funcionar em sistemas não-Linux.
/ proc / mounts é basicamente o / etc / mtab, mas é mantido pelo kernel. Ele contém uma lista de dispositivos de backup do sistema de arquivos, caminhos de montagem, tipos de sistema de arquivos e sinalizadores do sistema de arquivos.
Por exemplo, para listar os pontos de montagem de todos os sistemas de arquivos do ZFS montados, você pode fazer algo como
$ awk '$3 == "zfs" { print $2 }' < /proc/mounts
Para verificar se um determinado diretório corresponde a um ponto de montagem de um sistema de arquivos ZFS montado,
$ awk '$3 == "zfs" && $2 == "/some/particular/absolute/path" { print "yes" }' < /proc/mounts
Para permitir todos os sistemas de arquivos (não apenas o ZFS), basta remover a $3 == "zfs"
check.
Montados ou sistemas de arquivos ZFS desmontados
Se você precisar incluir sistemas de arquivos desmontados em pools importados atualmente, será necessário usar zfs get
para obter uma lista de todos os pontos de montagem do ZFS nos pools importados atualmente:
$ sudo zfs list -pH -o mountpoint | grep -q '^/some/particular/absolute/path$' && echo yes
imprimirá yes
se um sistema de arquivos com um ponto de montagem de /some/particular/absolute/path
existir em um pool atualmente importado, esteja ou não montado no sistema de arquivos atualmente.
Sistemas de arquivos nos pools exportados
Não estou ciente de nenhuma maneira de listar sistemas de arquivos em conjuntos exportados sem conhecimento fora de banda sobre os sistemas de arquivos nos conjuntos em questão. Por isso, não acredito que essa combinação seja possível.
Notas de acabamento
Sempre considere se existe um utilitário que faz o que você deseja. Por exemplo, df
, como um efeito colateral, imprime a lista de sistemas de arquivos atualmente montados e seus dispositivos auxiliares, e espera-se que eles não participem de nenhuma mágica do kernel (usando apenas interfaces destinadas ao uso público). strace df 2>&1 | less
é um bom começo nesse caso para ver como alguém pode encontrar as informações necessárias.