5 |
use Net::OpenSSH; |
use Net::OpenSSH; |
6 |
use Data::Dump qw(dump); |
use Data::Dump qw(dump); |
7 |
use List::Util qw(first); |
use List::Util qw(first); |
8 |
|
use Time::Hires; |
9 |
|
|
10 |
my $arh = Net::OpenSSH->new('root@10.60.0.204'); |
my $arh = Net::OpenSSH->new('root@10.60.0.204'); |
11 |
my $dev = Net::OpenSSH->new('root@10.60.0.202'); |
my $dev = Net::OpenSSH->new('root@10.60.0.202'); |
46 |
push @{ $snapshot->{$fs} }, $name; |
push @{ $snapshot->{$fs} }, $name; |
47 |
} |
} |
48 |
|
|
49 |
warn "snapshots_from $host ",dump($snapshot),$/; |
# warn "snapshots_from $host ",dump($snapshot),$/; |
50 |
|
|
51 |
return $snapshot; |
return $snapshot; |
52 |
} |
} |
103 |
my ($rin1,$pid1) = $dev->pipe_in($recv); |
my ($rin1,$pid1) = $dev->pipe_in($recv); |
104 |
warn ">> pid: $pid1"; |
warn ">> pid: $pid1"; |
105 |
|
|
106 |
|
sleep 0.1; # FIXME wait for netcat to start |
107 |
|
|
108 |
my $send = "zfs send $snapshot | nc -q 0 -w 5 10.60.0.202 8888"; |
my $send = "zfs send $snapshot | nc -q 0 -w 5 10.60.0.202 8888"; |
109 |
warn "<< $send\n"; |
warn "<< $send\n"; |
110 |
$arh->system($send); |
$arh->system($send); |
115 |
$dev->system("zfs set readonly=on $to_pool/$name") if $i == 0; |
$dev->system("zfs set readonly=on $to_pool/$name") if $i == 0; |
116 |
die $dev->error if $dev->error; |
die $dev->error if $dev->error; |
117 |
|
|
118 |
|
$dev_snapshot = snapshots_from $dev; |
119 |
|
die "can't find new snapshot $snap" unless $dev_snapshot->{$to_dev}; |
120 |
|
|
121 |
} |
} |
122 |
|
|
123 |
} |
} |