2011-01-28 60 views
5

DF -t NFS $目录如何判断(在上海)的目录是否被安装在NFS

返回两行输出,如果目录是NFS挂载的一线,如果事实并非如此。

DF的某些版本给退出状态1,如果它不是NFS安装,但GNU的coreutils 5.3.0不...

if [ `df -t nfs . | wc -l` = 2 ]; 

感觉不雅和他的同事说,这不充分检查错误。有一个更好的方法吗?

+0

我试过了几个选项,但你对我来说似乎仍然更优雅。你们的同事是否提到了这种方法会出现的错误? +1一个不错的尝试。 – 2011-01-28 16:48:57

+0

好的,我发现了一个问题。如果第一个输出列非常长(例如`nfs_server:/ long/mount/point`),那么`df`会将输出分成两行,最后是`wc -l = 3`。将解决方案更改为`if [.... -gt 1]`可轻松解决问题。 – 2011-01-28 17:02:12

+0

@ShawnChin:如果你应用`--portability` /`-P`选项,它不会换行很长的行。非常适合机器加工。 (用`df(GNU coreutils)7.4`测试) – RobM 2011-05-23 09:58:02

回答

0

你总是可以检查mtab中它使所有安装的文件系统的记录在一个平面文件,如果你使用strace的,看看这是所有DF做反正。我想你也可以使用/ proc/mounts,如果你在Linux中运行它。

相关问题