mirror of https://github.com/jimsalterjrs/sanoid
Merge 96b5a2c873 into 940a84e21f
This commit is contained in:
commit
cd77414953
18
syncoid
18
syncoid
|
|
@ -27,7 +27,7 @@ GetOptions(\%args, "no-command-checks", "monitor-version", "compress=s", "dumpsn
|
||||||
"no-clone-handling", "no-privilege-elevation", "force-delete", "no-rollback", "create-bookmark", "use-hold",
|
"no-clone-handling", "no-privilege-elevation", "force-delete", "no-rollback", "create-bookmark", "use-hold",
|
||||||
"pv-options=s" => \$pvoptions, "keep-sync-snap", "preserve-recordsize", "mbuffer-size=s" => \$mbuffer_size,
|
"pv-options=s" => \$pvoptions, "keep-sync-snap", "preserve-recordsize", "mbuffer-size=s" => \$mbuffer_size,
|
||||||
"delete-target-snapshots", "insecure-direct-connection=s", "preserve-properties",
|
"delete-target-snapshots", "insecure-direct-connection=s", "preserve-properties",
|
||||||
"include-snaps=s@", "exclude-snaps=s@", "exclude-datasets=s@")
|
"include-snaps=s@", "exclude-snaps=s@", "exclude-datasets=s@", "hostid=s")
|
||||||
or pod2usage(2);
|
or pod2usage(2);
|
||||||
|
|
||||||
my %compressargs = %{compressargset($args{'compress'} || 'default')}; # Can't be done with GetOptions arg, as default still needs to be set
|
my %compressargs = %{compressargset($args{'compress'} || 'default')}; # Can't be done with GetOptions arg, as default still needs to be set
|
||||||
|
|
@ -140,6 +140,17 @@ if (length $args{'identifier'}) {
|
||||||
$identifier = "$args{'identifier'}_";
|
$identifier = "$args{'identifier'}_";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $hostid = hostname();
|
||||||
|
if (length $args{'hostid'}) {
|
||||||
|
if ($args{'hostid'} !~ /^[a-zA-Z0-9-_:.]+$/) {
|
||||||
|
# invalid extra hostid
|
||||||
|
writelog('WARN', "hostid contains invalid chars!");
|
||||||
|
pod2usage(2);
|
||||||
|
exit 127;
|
||||||
|
}
|
||||||
|
$hostid = "$args{'hostid'}";
|
||||||
|
}
|
||||||
|
|
||||||
# figure out if source and/or target are remote.
|
# figure out if source and/or target are remote.
|
||||||
$sshcmd = "$sshcmd $args{'sshconfig'} $args{'sshcipher'} $sshoptions $args{'sshport'} $args{'sshkey'}";
|
$sshcmd = "$sshcmd $args{'sshconfig'} $args{'sshcipher'} $sshoptions $args{'sshport'} $args{'sshkey'}";
|
||||||
writelog('DEBUG', "SSHCMD: $sshcmd");
|
writelog('DEBUG', "SSHCMD: $sshcmd");
|
||||||
|
|
@ -377,7 +388,6 @@ sub syncdataset {
|
||||||
writelog('INFO', "Skipping dataset (syncoid:sync=false): $sourcefs...");
|
writelog('INFO', "Skipping dataset (syncoid:sync=false): $sourcefs...");
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
my $hostid = hostname();
|
|
||||||
my @hosts = split(/,/,$sync);
|
my @hosts = split(/,/,$sync);
|
||||||
if (!(grep $hostid eq $_, @hosts)) {
|
if (!(grep $hostid eq $_, @hosts)) {
|
||||||
writelog('INFO', "Skipping dataset (syncoid:sync doesn't include $hostid): $sourcefs...");
|
writelog('INFO', "Skipping dataset (syncoid:sync doesn't include $hostid): $sourcefs...");
|
||||||
|
|
@ -794,7 +804,6 @@ sub syncdataset {
|
||||||
if (defined $args{'use-hold'}) {
|
if (defined $args{'use-hold'}) {
|
||||||
my $holdcmd;
|
my $holdcmd;
|
||||||
my $holdreleasecmd;
|
my $holdreleasecmd;
|
||||||
my $hostid = hostname();
|
|
||||||
my $matchingsnapescaped = escapeshellparam($matchingsnap);
|
my $matchingsnapescaped = escapeshellparam($matchingsnap);
|
||||||
my $holdname = "syncoid\_$identifier$hostid";
|
my $holdname = "syncoid\_$identifier$hostid";
|
||||||
if ($sourcehost ne '') {
|
if ($sourcehost ne '') {
|
||||||
|
|
@ -1669,8 +1678,6 @@ sub pruneoldsyncsnaps {
|
||||||
|
|
||||||
if ($rhost ne '') { $rhost = "$sshcmd $rhost"; }
|
if ($rhost ne '') { $rhost = "$sshcmd $rhost"; }
|
||||||
|
|
||||||
my $hostid = hostname();
|
|
||||||
|
|
||||||
my $mysudocmd;
|
my $mysudocmd;
|
||||||
if ($isroot) { $mysudocmd=''; } else { $mysudocmd = $sudocmd; }
|
if ($isroot) { $mysudocmd=''; } else { $mysudocmd = $sudocmd; }
|
||||||
|
|
||||||
|
|
@ -1746,7 +1753,6 @@ sub newsyncsnap {
|
||||||
}
|
}
|
||||||
my $mysudocmd;
|
my $mysudocmd;
|
||||||
if ($isroot) { $mysudocmd = ''; } else { $mysudocmd = $sudocmd; }
|
if ($isroot) { $mysudocmd = ''; } else { $mysudocmd = $sudocmd; }
|
||||||
my $hostid = hostname();
|
|
||||||
my %date = getdate();
|
my %date = getdate();
|
||||||
my $snapname = "syncoid\_$identifier$hostid\_$date{'stamp'}";
|
my $snapname = "syncoid\_$identifier$hostid\_$date{'stamp'}";
|
||||||
my $snapcmd = "$rhost $mysudocmd $zfscmd snapshot $fsescaped\@$snapname\n";
|
my $snapcmd = "$rhost $mysudocmd $zfscmd snapshot $fsescaped\@$snapname\n";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue