in reply to Network Drive?

To be honest, I'm not sure how to do that, either. For example, you can check the filesystem driver, but NFS is far from the only non-local filesystem there is. There's AFS and DFS, off the top of my head. Then there are drivers that sit on top of other drivers, such as Rational's MVFS. Next way is to check against known local filesystems - but there are even more varieties here. ext3, ext2, ntfs, hpfs, fat, vfat, jfs, jfs2, vfs, resierfs, ... And then there's drivers that sit on top of these as well, such as IBM's Datalinks product's dlfs (sits on jfs, vfs, or ntfs, depending on the OS). So that's no good.

The only way I can think of is to check the output from mount or df. e.g., "df -k /some/dir" will report on /some/dir if that's the mountpoint, or /some, or /, depending on where the filesystem is mounted. If the filesystem it reports has a colon, it's remote. If there is no slash in there, then it's a pseudo-filesystem.

Personally, we've always gone for the documentation approach on this. "Don't use an NFS partition." If they try it, it may work, great. But if it doesn't work, we point to the documentation. ;-)

Replies are listed 'Best First'.
Re^2: Network Drive?
by drewk (Acolyte) on Sep 30, 2005 at 00:16 UTC
    This was kinda the way I was going:

    1) lsvfs produces a list of all file systems and their count

    2) df -t (fs) produces mount points for each given fs type

    I can then associate them in Perl. However, before I go though all that work, I just wanted to know if there was an easier way.