2012-09-04 62 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系统,并且工作正常。 –