add support for --pe & --pv toggles [Patrick Van der Veken]
This commit is contained in:
parent
1bc5bd5fae
commit
b61aeb3cec
@ -62,6 +62,8 @@ if ( @ARGV > 0 ) {
|
|||||||
help|h|?
|
help|h|?
|
||||||
size|s=s
|
size|s=s
|
||||||
vg|g=s
|
vg|g=s
|
||||||
|
pe|e
|
||||||
|
pv|v
|
||||||
active|a
|
active|a
|
||||||
terse|t
|
terse|t
|
||||||
));
|
));
|
||||||
@ -71,6 +73,10 @@ if ($options{'help'}) {
|
|||||||
pod2usage(-verbose => 3);
|
pod2usage(-verbose => 3);
|
||||||
exit (0);
|
exit (0);
|
||||||
};
|
};
|
||||||
|
if ($options{'pe'} and $options{'pv'}) {
|
||||||
|
pod2usage(-verbose => 3);
|
||||||
|
exit (0);
|
||||||
|
};
|
||||||
unless ($options{'size'}) {
|
unless ($options{'size'}) {
|
||||||
$options{'size'} = 'GB';
|
$options{'size'} = 'GB';
|
||||||
};
|
};
|
||||||
@ -102,16 +108,29 @@ foreach my $vg_entry (@vgdisplay) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# print header
|
# print header
|
||||||
|
if ($options{'pe'}) {
|
||||||
|
unless ($options{'terse'}) {
|
||||||
|
printf STDOUT ("\n%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8s %-10s %-10s %-10s %-12s\n",
|
||||||
|
"VG", "PVs", "LVs", "Status", "Version", "PE Size", "PE Total", "PE Alloc", "PE Free", "Max PE/PV");
|
||||||
|
}
|
||||||
|
} elsif ($options{'pv'}) {
|
||||||
|
unless ($options{'terse'}) {
|
||||||
|
printf STDOUT ("\n%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8s %-8s %-8s %-12s\n",
|
||||||
|
"VG", "PVs", "LVs", "Status", "Version", "Max PV", "Act PV", "PVGs", "Max PE/PV");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
unless ($options{'terse'}) {
|
unless ($options{'terse'}) {
|
||||||
printf STDOUT ("\n%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8s %-10s %-10s %-10s %-12s\n",
|
printf STDOUT ("\n%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8s %-10s %-10s %-10s %-12s\n",
|
||||||
"VG", "PVs", "LVs", "Status", "Version", "PE Size", "VG Size", "VG Free", "VG Max", "VG Major/Minor");
|
"VG", "PVs", "LVs", "Status", "Version", "PE Size", "VG Size", "VG Free", "VG Max", "VG Major/Minor");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# loop over vgdisplay (ASCII sorted)
|
# loop over vgdisplay (ASCII sorted)
|
||||||
foreach my $vg_entry (sort (@vgdisplay)) {
|
foreach my $vg_entry (sort (@vgdisplay)) {
|
||||||
|
|
||||||
my ($vg_name, $vg_status, $vg_version, $lsvg, $vg_major, $vg_minor,) = ("","","n/a","","n/a","n/a");
|
my ($vg_name, $vg_status, $vg_version, $lsvg, $vg_major, $vg_minor,) = ("","","n/a","","n/a","n/a");
|
||||||
my ($vg_total_pe, $vg_size_pe, $vg_free_pe, $vg_cur_pvs, $vg_cur_lvs, $vg_max_pe) = (0,0,0,0,0,0);
|
my ($vg_total_pe, $vg_alloc_pe, $vg_size_pe, $vg_free_pe, $vg_cur_pvs, $vg_cur_lvs, $vg_max_pe, $vg_pe_per_pv) = (0,0,0,0,0,0,0,0);
|
||||||
|
my ($vg_max_pv, $vg_act_pv, $vg_total_pvg) = (0,0,0);
|
||||||
my ($vg_size, $vg_free, $vg_max) = (0,0,0);
|
my ($vg_size, $vg_free, $vg_max) = (0,0,0);
|
||||||
|
|
||||||
my @vg_data = split (/:/, $vg_entry);
|
my @vg_data = split (/:/, $vg_entry);
|
||||||
@ -124,14 +143,20 @@ foreach my $vg_entry (sort (@vgdisplay)) {
|
|||||||
|
|
||||||
unless ($vg_status eq "deactivated") {
|
unless ($vg_status eq "deactivated") {
|
||||||
$vg_total_pe = $1 if ($vg_field =~ m%^total_pe=(.*)%);
|
$vg_total_pe = $1 if ($vg_field =~ m%^total_pe=(.*)%);
|
||||||
|
$vg_alloc_pe = $1 if ($vg_field =~ m%^alloc_pe=(.*)%);
|
||||||
$vg_size_pe = $1 if ($vg_field =~ m%^pe_size=(.*)%);
|
$vg_size_pe = $1 if ($vg_field =~ m%^pe_size=(.*)%);
|
||||||
$vg_free_pe = $1 if ($vg_field =~ m%^free_pe=(.*)%);
|
$vg_free_pe = $1 if ($vg_field =~ m%^free_pe=(.*)%);
|
||||||
$vg_cur_pvs = $1 if ($vg_field =~ m%^cur_pv=(.*)%);
|
$vg_cur_pvs = $1 if ($vg_field =~ m%^cur_pv=(.*)%);
|
||||||
$vg_cur_lvs = $1 if ($vg_field =~ m%^cur_lv=(.*)%);
|
$vg_cur_lvs = $1 if ($vg_field =~ m%^cur_lv=(.*)%);
|
||||||
$vg_version = $1 if ($vg_field =~ m%^vg_version=(.*)%);
|
$vg_version = $1 if ($vg_field =~ m%^vg_version=(.*)%);
|
||||||
$vg_max_pe = $1 if ($vg_field =~ m%^vg_max_extents=(.*)%);
|
$vg_max_pe = $1 if ($vg_field =~ m%^vg_max_extents=(.*)%);
|
||||||
|
$vg_pe_per_pv = $1 if ($vg_field =~ m%^max_pe_per_pv=(.*)%);
|
||||||
|
$vg_max_pv = $1 if ($vg_field =~ m%^max_pv=(.*)%);
|
||||||
|
$vg_act_pv = $1 if ($vg_field =~ m%^act_pv=(.*)%);
|
||||||
|
$vg_total_pvg = $1 if ($vg_field =~ m%^total_pvg=(.*)%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!$options{'pe'}) {
|
||||||
# calculate sizes
|
# calculate sizes
|
||||||
unless ($vg_status eq "deactivated") {
|
unless ($vg_status eq "deactivated") {
|
||||||
$vg_size = $vg_total_pe * $vg_size_pe;
|
$vg_size = $vg_total_pe * $vg_size_pe;
|
||||||
@ -150,8 +175,37 @@ foreach my $vg_entry (sort (@vgdisplay)) {
|
|||||||
$vg_major = (split (/\s+/, $lsvg))[4];
|
$vg_major = (split (/\s+/, $lsvg))[4];
|
||||||
$vg_minor = (split (/\s+/, $lsvg))[5];
|
$vg_minor = (split (/\s+/, $lsvg))[5];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# report data
|
# report data
|
||||||
|
if ($options{'pe'}) {
|
||||||
|
unless ($options{'active'} and ($vg_status eq "deactivated")) {
|
||||||
|
printf STDOUT ("%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8d %-10d %-10d %-10d %-12d\n",
|
||||||
|
$vg_name,
|
||||||
|
$vg_cur_pvs,
|
||||||
|
$vg_cur_lvs,
|
||||||
|
$vg_status,
|
||||||
|
$vg_version,
|
||||||
|
$vg_size_pe,
|
||||||
|
$vg_total_pe,
|
||||||
|
$vg_alloc_pe,
|
||||||
|
$vg_free_pe,
|
||||||
|
$vg_pe_per_pv)
|
||||||
|
}
|
||||||
|
} elsif ($options{'pv'}) {
|
||||||
|
unless ($options{'active'} and ($vg_status eq "deactivated")) {
|
||||||
|
printf STDOUT ("%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8d %-8d %-8d %-12d\n",
|
||||||
|
$vg_name,
|
||||||
|
$vg_cur_pvs,
|
||||||
|
$vg_cur_lvs,
|
||||||
|
$vg_status,
|
||||||
|
$vg_version,
|
||||||
|
$vg_max_pv,
|
||||||
|
$vg_act_pv,
|
||||||
|
$vg_total_pvg,
|
||||||
|
$vg_pe_per_pv)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
unless ($options{'active'} and ($vg_status eq "deactivated")) {
|
unless ($options{'active'} and ($vg_status eq "deactivated")) {
|
||||||
printf STDOUT ("%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8d %-10d %-10d %-10d %3s/%-8s\n",
|
printf STDOUT ("%-${vg_str_size}s %-5s %-5s %-20s %-8s %-8d %-10d %-10d %-10d %3s/%-8s\n",
|
||||||
$vg_name,
|
$vg_name,
|
||||||
@ -167,6 +221,7 @@ foreach my $vg_entry (sort (@vgdisplay)) {
|
|||||||
$vg_minor)
|
$vg_minor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# footer
|
# footer
|
||||||
unless ($options{'terse'}) {
|
unless ($options{'terse'}) {
|
||||||
@ -202,6 +257,7 @@ vgs.pl - Show volume group information in a terse way (Linux style).
|
|||||||
[(-g|--vg)=<vg_name>]
|
[(-g|--vg)=<vg_name>]
|
||||||
[(-s|--size)=<MB|GB>]
|
[(-s|--size)=<MB|GB>]
|
||||||
[(-a|--active)]
|
[(-a|--active)]
|
||||||
|
[(-e|--pe) | (-v|--pv)]
|
||||||
[(-t|--terse)]
|
[(-t|--terse)]
|
||||||
|
|
||||||
=head1 OPTIONS
|
=head1 OPTIONS
|
||||||
@ -224,10 +280,20 @@ S< >Display information for a specific volume group.
|
|||||||
|
|
||||||
S< >Show volume group sizes in MB or GB (default is GB).
|
S< >Show volume group sizes in MB or GB (default is GB).
|
||||||
|
|
||||||
|
=item -e | --pe
|
||||||
|
|
||||||
|
S< >Show PE (physical extents) information instead of detailed VG (volume group) information
|
||||||
|
|
||||||
|
=item -v | --pv
|
||||||
|
|
||||||
|
S< >Show PV (physical volume) information instead of detailed VG (volume group) information
|
||||||
|
|
||||||
=item -t | --terse
|
=item -t | --terse
|
||||||
|
|
||||||
S< >Do not show header and footer information.
|
S< >Do not show header and footer information.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
(c) KUDOS BVBA - Patrick Van der Veken
|
(c) KUDOS BVBA - Patrick Van der Veken
|
||||||
@ -239,3 +305,4 @@ S< >Do not show header and footer information.
|
|||||||
@(#) 2017-12-12: made VG name display size dynamic, added --active, added --terse [Patrick Van der Veken]
|
@(#) 2017-12-12: made VG name display size dynamic, added --active, added --terse [Patrick Van der Veken]
|
||||||
@(#) 2019-02-08: remove /dev/ prefix for VG [Patrick Van der Veken]
|
@(#) 2019-02-08: remove /dev/ prefix for VG [Patrick Van der Veken]
|
||||||
@(#) 2020-03-26: use ceil() to round up to more sensible numbers [Patrick Van der Veken]
|
@(#) 2020-03-26: use ceil() to round up to more sensible numbers [Patrick Van der Veken]
|
||||||
|
@(#) 2020-11-10: add support for --pe & --pv toggles [Patrick Van der Veken]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user