--- zetaback.in.orig 2020-05-02 21:18:03 UTC +++ zetaback.in @@ -769,7 +769,11 @@ sub zfs_remove_snap($$$) { } return unless($snap); print "Dropping $snap on $fs\n" if($DEBUG); - `ssh $ssh_config $host $agent -z $fs -d $snap`; + if ($host eq "localhost") { + `$agent -z $fs -d $snap`; + } else { + `ssh $ssh_config $host $agent -z $fs -d $snap`; + } } # Lots of args.. internally called. @@ -832,7 +836,12 @@ sub zfs_do_backup($$$$$$;$) { die "Child exit value: $ev" if ($ev); } else { - my @cmd = ('ssh', split(/ /, $ssh_config), $host, $agent, '-z', $fs); + my @cmd; + if ($host eq "localhost") { + @cmd = ($agent, '-z', $fs); + } else { + @cmd = ('ssh', split(/ /, $ssh_config), $host, $agent, '-z', $fs); + } if ($type eq "i" || ($type eq "s" && $base)) { push @cmd, ("-i", $base); } @@ -1346,7 +1359,11 @@ sub zfs_restore_part($$$$;$) { open(DUMP, "__ZFS__ send $dataset |"); } eval { - open(RECEIVER, "| ssh $ssh_config $host $command"); + if ($host eq "localhost") { + open(RECEIVER, "| $command"); + } else { + open(RECEIVER, "| ssh $ssh_config $host $command"); + } my $buffer; while(my $len = sysread(DUMP, $buffer, $BLOCKSIZE)) { if(syswrite(RECEIVER, $buffer, $len) != $len) { @@ -1573,7 +1590,12 @@ sub plan_and_run($$) { # Get list of zfs filesystems from the agent open(SILENT, ">&", \*STDERR); close(STDERR); - my $rv = open(ZFSLIST, "ssh $ssh_config $host $agent -l |"); + my $rv; + if ($host eq "localhost") { + $rv = open(ZFSLIST, "$agent -l |"); + } else { + $rv = open(ZFSLIST, "ssh $ssh_config $host $agent -l |"); + } open(STDERR, ">&", \*SILENT); close(SILENT); next unless $rv;