+sub get_compratio
+{
+ my $self = shift;
+
+ my $cmd;
+ $cmd = "$self->{pfexec_cmd} $self->{zfs_path} get -Hp -o value compressratio $self->{filesystem}\@$self->{snapshot}";
+ debug "running (get-compression): $cmd";
+ my($wtr, $rdr, $err, $pid);
+ $err = Symbol::gensym;
+ $pid = open3($wtr, $rdr, $err, $cmd);
+ close $wtr;
+ my ($msg) = <$rdr>;
+ my ($errmsg) = <$err>;
+ waitpid $pid, 0;
+ close $rdr;
+ close $err;
+ if ($? != 0) {
+ if (defined $msg && defined $errmsg) {
+ $self->print_to_server_and_die("$msg, $errmsg", $Amanda::Script_App::ERROR);
+ } elsif (defined $msg) {
+ $self->print_to_server_and_die($msg, $Amanda::Script_App::ERROR);
+ } elsif (defined $errmsg) {
+ $self->print_to_server_and_die($errmsg, $Amanda::Script_App::ERROR);
+ } else {
+ $self->print_to_server_and_die("cannot read compression ratio '$self->{snapshot}\@$self->{snapshot}': unknown reason", $Amanda::Script_App::ERROR);
+ }
+ }
+ return $msg
+}
+