Только в настоящее время смонтированные файловые системы
Если вы хотите ограничить себя монтируемыми в настоящее время файловыми системами ZFS, вы можете анализировать /proc/mounts
и вам не требуются какие-либо особые знания ZFS (если вы специально не хотите ограничивать себя файловыми системами ZFS).
Это может работать или не работать в системах, отличных от Linux.
/proc/mounts - это, по сути, /etc /mtab, но поддерживается ядром. Он содержит список устройств поддержки файловой системы, пути монтирования, типы файловой системы и флаги файловой системы.
Например, чтобы получить список точек монтирования всех смонтированных файловых систем ZFS, вы можете сделать что-то вроде
$ awk '$3 == "zfs" { print $2 }' < /proc/mounts
Чтобы проверить, соответствует ли данный каталог точке монтирования для смонтированной файловой системы ZFS,
$ awk '$3 == "zfs" && $2 == "/some/particular/absolute/path" { print "yes" }' < /proc/mounts
Чтобы учесть все файловые системы (не только ZFS), просто удалите проверку $3 == "zfs"
.
Подключенные или отключенные файловые системы ZFS
Если вам нужно включить несмонтированные файловые системы в импортируемые в настоящее время пулы, вам нужно использовать zfs get
чтобы получить список всех точек монтирования ZFS в импортируемых в настоящее время пулах:
$ sudo zfs list -pH -o mountpoint | grep -q '^/some/particular/absolute/path$' && echo yes
выведет yes
если файловая система с точкой монтирования /some/particular/absolute/path
существует в пуле, который импортируется в данный момент, независимо от того, смонтирована ли эта файловая система в данный момент.
Файловые системы в экспортируемых пулах
Я не знаю ни одного способа перечисления файловых систем в экспортируемых пулах без внеплановых знаний о файловых системах в рассматриваемых пулах. Следовательно, я не верю, что эта комбинация возможна.
Завершающие заметки
Всегда учитывайте, существует ли утилита, которая делает то, что вы хотите. Например, df
, в качестве побочного эффекта, печатает список монтируемых в настоящее время файловых систем и их вспомогательных устройств, и можно ожидать, что он не будет участвовать в какой-либо магии ядра (только с использованием интерфейсов, предназначенных для общего пользования). strace df 2>&1 | less
этом случае лучше начать с less , чтобы узнать, как можно найти нужную вам информацию.