Can one find a mount point just knowing the volume name?
Mike Robokoff
mrobo@networkcs.com
Thu, 08 Feb 2001 12:17:56 -0600
Thanks for the script! I can also put this to use.
--Mike
Stephen Joyce wrote:
> You can recursively descend through your cell (or portions of it) to find
> this; with a bit of creativity, you could even maintain a database of this
> information.
>
> Here's a script which will give you this information on stdout. We call it
> afsmounts and it takes one argument: the top level directory to
> start with (this should at least be /afs/<your cell>; it is inadvisable to
> run it on /afs... :-) Depending on the size of your cell, you may wish to
> run it when the impact will be minimal. You need to run it with
> administrator tokens (or make it able to traverse all directories on your
> system by other nefarious means).
>
> #!/usr/local/bin/perl
>
> sub descend {
> local($dir) = @_;
> local(@names);
>
> return warn "$dir: $!\n" unless opendir(DIR, $dir);
> @names = readdir(DIR);
> closedir(DIR);
> for (@names) {
> &doname($dir . "/" . $_) unless $_ eq "." || $_ eq "..";
> }
> return $dir;
> }
>
> sub doname {
> local($name) = @_;
> local($dev, $ino, $vol);
>
> return warn "$name: $!\n" unless ($dev, $ino) = lstat($name);
> return &descend($name) if $ino & 1;
> return $name if -l $name || ! -d _;
> $vol = `fs lsmount $name`;
> die unless $vol =~ s/.*mount point for volume '(.*)'\n$/\1/;
> printf "%-${volwidth}s %s\n", $vol, $name;
> return $name if $vol =~ /.*\.backup$/;
> return &descend($name);
> }
>
> $volwidth = 24;
>
> printf "%-${volwidth}s %s\n", "Volume Name", "Mounted-on";
>
> foreach (@ARGV ? @ARGV : (".")) {
> s#(.)/+$#\1#;
> $msg = `fs examine $_ 2>&1`;
> $msg =~ s/fs:\s*//, warn($msg), next unless $? == 0;
> &doname($_);
> }
>
> exit 0
>
> On Thu, 8 Feb 2001, Neulinger, Nathan R. wrote:
>
> > mount "point" is the problem... There isn't just one mount point for a
> > volume, there can be 0, 1, or hundreds...
> >
> > If you feel like loading down your server, you can get that information from
> > salvager, but it's slow. The alternative is to recursively descend through
> > afs space looking for mount points.
> >
> > -- Nathan
> >
> > > -----Original Message-----
> > > From: Morris Strongson [mailto:mms@bnl.gov]
> > > Sent: Thursday, February 08, 2001 11:02 AM
> > > To: info-afs@transarc.com
> > > Subject: Can one find a mount point just knowing the volume name?
> > >
> > >
> > > Hopefully a quick one; if I know a volume name,
> > > is there any way to find out what its mount point is?
> > > Thanks.
> > >
> > > --
> > >
> > > **************************************************************
> > > ************
> > > Morris Strongson, RHIC, USAtlas Projects Telephone:
> > > (631)344-4192
> > > Information Technology Division (fka CCD) Facsimile:
> > > (631)344-7688
> > > Brookhaven National Laboratory Internet: mms@bnl.gov
> > > Building 515, Upton, NY 11973-5000 WWW:
> > > http://www.ccd.bnl.gov/
> > > **************************************************************
> > > ************
> > >
> > >
> > >
> >