2012-09-04 65 views
2

是否有一個單一的通用bash shell變量或通用Linux命令,可以可靠地指示給定的目錄或文件是否在遠程文件系統上 - 無論是NFS,SSHFS,SMB還是其他遠程掛載文件系統?檢測遠程安裝

上下文...
這是一個使用SSH和SSHFS進行半無縫鬆耦合系統的純root訪問單用戶多主機Linux開發「實驗室」。每臺主機上的相關目錄結構是...

/0 
    /0/HOST1 
    /0/HOST2 
    /0/HOST3 
    /bin 
    /boot 
     : 

//中的目錄是SSHFS掛載到指定主機上的'/'。 'Host1'等是爲每個主機命名的掛載點目錄。

我當然可以,建立一個環境變量類似...

REMOTE_FS=/0 

...並以「/ 0」測試的目錄名稱。然而,這不是很便攜或可靠。

明顯的問題...
爲了使其無縫化,爲什麼我想知道何時訪問非本地的東西?

答案...
通過已安裝的文件系統將啓動主機上的所有處理負載。我想知道何時可以選擇使用SSH而不是SSHFS將後臺處理(ls,grep,awk等)卸載到遠程(通常功能更強大)的主機上,只保留GUI和控制邏輯本地機器。

+0

df對確定哪個文件系統保存特定文件或目錄很有用。 –

回答

2
df -l <file> 

如果文件或目錄不是本地的,這將返回一個非零的退出代碼。

+0

這不會在遠程文件系統上返回非零退出代碼,至少在使用NFS裝入的RHEL上不會返回代碼。 – kkeller

+0

它在Debian Wheezy上使用NFS掛載。 –

+0

@kkeller:有趣。我嘗試使用nfs mount來安裝Fedora 15系統,並且工作正常。 –