3 @snapshots=`zfs list -t snapshot`;
7 $giga = 1024 * 1024 * 1024;
12 if($size > ($giga)) { $size = int($size / $giga); $size = "$size"."G"; }
13 elsif($size > ($mega)) { $size = int($size / $mega); $size = "$size"."M"; }
14 elsif($size > ($kilo)) { $size = int($size / $kilo); $size = "$size"."K"; }
18 foreach $snapshot (@snapshots)
21 if($snapshot =~ /(\S+)\@(\S+)\s+(\S+)\s+/) {
24 if($size =~ /k/i) { $size = $size * $kilo; }
25 if($size =~ /m/i) { $size = $size * $mega; }
26 if($size =~ /g/i) { $size = $size * $giga; }
27 $totals{$filesystem}{size} += $size;
28 $totals{$filesystem}{snapshots}++;
32 printf "%-30s %-15s %-10s\n","ZFS Filesystem","Snapshots Size","Num Snapshots";
33 printf "%-30s %-15s %-10s\n","--","--","--";
34 foreach $key (sort keys %totals)
36 $size = $totals{$key}{size};
38 $total_snapshots += $totals{$key}{snapshots};
39 $size = &adjust_size($size);
40 printf "%-30s %-15s %-10s\n", $key, $size, $totals{$key}{snapshots};
43 $total_size = &adjust_size($total_size);
44 printf "%-30s %-15s %-10s\n","--","--","--";
45 printf "%-30s %-15s %-10s\n","Total Snapshots",$total_size,$total_snapshots;