Select Git revision
Filesystems.pm
Filesystems.pm 5.35 KiB
=head1 NAME
Util::Filesystems
=head1 DESCRIPTION
Wrapper for Linux::Proc::Filesystems and possibly other modules to obtain
a full picture about available filesystems
Wanted information
* mount point info (Sys::Filesystem)
* free space
* LVM
=cut
use strict;
package Util::Filesystems;
use Data::Dumper;
$Data::Dumper::Indent= 1;
my $initialzed= 0;
my $have_LPM= 0;
BEGIN {
eval {
require Linux::Proc::Mounts;
};
if ($@)
{
# print "consider to install Linux::Proc::Mounts\n";
}
else
{
$have_LPM= 1;
}
}
my %setable= map { $_ => 1 } qw();
my %ignore_fs_type= map { $_ => 1 } qw(none rootfs tmpfs proc devpts
devtmpfs usbfs sysfs binfmt_misc fusectl debugfs securityfs pstore
cgroup autofs hugetlbfs mqueue tracefs overlayfs fuse.gvfsd-fuse fuseblk
fuse.sshfs cifs squashfs nsfs
);
my %ignore_fs_path= map { $_ => 1 } qw(tmpfs);
# print "ignore_fs_type: ", Dumper (\%ignore_fs_type);
__PACKAGE__->main() unless caller();
sub main
{
# print join (' ', __FILE__, __LINE__, 'main: caller=['. caller(). ']'), "\n";
my $fs= new Util::Filesystems;
$fs->_init();
# print __LINE__, ' fs: ', Dumper($fs);
print "regular filesystems: ", join(' ', $fs->regular_filesystems()), "\n";
}
sub new
{
my $class= shift;