3

Как я могу определить, является ли данный каталог на компьютере с Linux подключенным диском NFS или нет?

3 ответа3

6

Вы можете использовать утилиту stat с -f чтобы сказать, что вы ищете информацию о файловой системе.

Например:

$ stat -f -c %T .
ext2/ext3
$ stat -f -c %T /sys
sysfs
$ stat -f -c %T /proc
proc
$ if [[ $(stat -f -c %T /proc) == proc ]] ; then echo Good ; fi
Good

(См. Справочную страницу для различных вариантов форматирования, и извините, у меня нет удобного монтирования NFS.)

5

Вы можете использовать df -t nfs <directory> , который будет выводить как

$ df /home/aland/ -t nfs
Filesystem           1K-blocks      Used Available Use% Mounted on
nfs_oscar:/home      1255425376 874128064 316496736  74% /home

если каталог подключен к монтированию NFS, и ничего другого:

$ df /root/ -t nfs
Filesystem           1K-blocks      Used Available Use% Mounted on

Edit: более простой способ: df -T <directory> (флаг -P используется для отключения довольно форматирования для облегчения tail Ing и awk Инг):

$ df /home/aland/ -TP  | tail -n -1 | awk '{print $2}'
nfs
1

Я бы просто использовал mountpoint инструмента по умолчанию:

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       mountpoint [-d|-q] directory

Поскольку вы говорите конкретно о NFS , это означает, что у вас также есть доступ к showmount , за исключением того, что это работает наоборот (с хоста вместо каталога):

NAME
       showmount - show mount information for an NFS server

SYNOPSIS
       showmount [ -adehv ] [ --all ] [ --directories ] [ --exports ] [ --help ] [ --version ] [ host ]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .