如何確定目錄是否位於 NFS 掛載的磁碟機上?

如何確定目錄是否位於 NFS 掛載的磁碟機上?

如何確定 Linux 電腦上的給定目錄是否來自 NFS 安裝的磁碟機?

答案1

您可以使用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

編輯:更簡單的方法:(df -T <directory>標誌-P用於禁用漂亮的格式以方便tailing 和awking):

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

答案2

您可以使用該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 安裝。)

答案3

我會簡單地使用預設工具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 ]

相關內容