/usr/local/CPAN/pfacter/Pfacter/filesystems.pm
package Pfacter::filesystems;
# List mounted filesystems
sub pfact {
my $self = shift;
my ( $p ) = shift->{'pfact'};
my ( $r );
for ( $p->{'kernel'} ) {
/AIX/ && do {
my ( @l, @fs );
foreach my $fstype ( qw/ jfs2 / ) {
if ( -e '/usr/sbin/lsfs' ) {
open( F, "/usr/sbin/lsfs -c -v $fstype |" );
foreach ( <F> ) {
next if /^#/;
@l = split( /:/, $_ );
push @fs, "$l[1]=$l[0]";
}
close( F );
}
}
$r = join ( ' ', sort @fs );
};
/Darwin/ && do {
my ( @l, @fs );
foreach my $fstype ( qw / hfs ufs / ) {
if ( -e '/sbin/mount' ) {
open( F, "/sbin/mount -t $fstype |" );
foreach ( <F> ) {
@l = split( / /, $_ );
push @fs, "$l[0]=$l[2]";
}
close( F );
}
}
$r = join ( ' ', sort @fs );
};
/Linux/ && do {
my ( @l, @fs );
foreach my $fstype ( qw/ ext2 ext3 reiserfs xfs / ) {
if ( -e '/bin/mount' ) {
open( F, "/bin/mount -t $fstype |" );
foreach ( <F> ) {
@l = split( / /, $_ );
push @fs, "$l[0]=$l[2]";
}
close( F );
}
}
$r = join ( ' ', sort @fs );
};
/SunOS/ && do {
my ( @l, @fs );
if ( -e '/sbin/mount' ) {
open( F, '/sbin/mount -p |' );
foreach ( <F> ) {
@l = split( / /, $_ );
push @fs, "$l[0]=$l[2]" if $l[3] eq 'ufs';
}
close( F );
}
$r = join ( ' ', sort @fs );
};
if ( $r ) { return( $r ); }
else { return( 0 ); }
}
}
1;