X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=zfs-snapshot-totals;h=be223d94e7720e50bcec02a67ffc37653aaceedf;hb=b9cf1faedfe7f20819b0fcd466a78280d05316e2;hp=53bcd7b20029a3f4050b85a0000a97b81ba4e86d;hpb=db345818e94a6ed712b6be68c3204e60c6972773;p=zfs-ubuntu%2F.git diff --git a/zfs-snapshot-totals b/zfs-snapshot-totals index 53bcd7b..be223d9 100755 --- a/zfs-snapshot-totals +++ b/zfs-snapshot-totals @@ -5,11 +5,12 @@ $kilo = 1024; $mega = 1024 * 1024; $giga = 1024 * 1024 * 1024; +$maxlen = 0; sub adjust_size { my ($size) = @_; - if($size > ($giga)) { $size = int($size / $giga); $size = "$size"."G"; } + if($size > ($giga)) { $size = $size / $giga; $size = sprintf("%2.2fG",$size); } elsif($size > ($mega)) { $size = int($size / $mega); $size = "$size"."M"; } elsif($size > ($kilo)) { $size = int($size / $kilo); $size = "$size"."K"; } return $size; @@ -21,6 +22,7 @@ foreach $snapshot (@snapshots) if($snapshot =~ /(\S+)\@(\S+)\s+(\S+)\s+/) { $filesystem = $1; $size = $3; + if(length($filesystem) > $maxlen) { $maxlen = length($filesystem); } if($size =~ /k/i) { $size = $size * $kilo; } if($size =~ /m/i) { $size = $size * $mega; } if($size =~ /g/i) { $size = $size * $giga; } @@ -29,18 +31,19 @@ foreach $snapshot (@snapshots) } } -printf "%-20s %-15s %-10s\n","ZFS Filesystem","Snapshots Size","Num Snapshots"; -printf "%-20s %-15s %-10s\n","--","--","--"; -foreach $key (keys %totals) +$maxlen=$maxlen+2; +printf "%-${maxlen}s %-15s %-10s\n","ZFS Filesystem","Snapshots Size","Num Snapshots"; +printf "%-${maxlen}s %-15s %-10s\n","--","--","--"; +foreach $key (sort keys %totals) { $size = $totals{$key}{size}; $total_size += $size; $total_snapshots += $totals{$key}{snapshots}; $size = &adjust_size($size); - printf "%-20s %-15s %-10s\n", $key, $size, $totals{$key}{snapshots}; + printf "%-${maxlen}s %-15s %-10s\n", $key, $size, $totals{$key}{snapshots}; } $total_size = &adjust_size($total_size); -printf "%-20s %-15s %-10s\n","--","--","--"; -printf "%-20s %-15s %-10s\n","Total Snapshots",$total_size,$total_snapshots; +printf "%-${maxlen}s %-15s %-10s\n","--","--","--"; +printf "%-${maxlen}s %-15s %-10s\n","Total Snapshots",$total_size,$total_snapshots;