# exclude-path list need to be 0 separated
my @expaths = split(/\0/, $param->{'exclude-path'} || '');
- $param->{'exclude-path'} = @expaths;
+ $param->{'exclude-path'} = [ @expaths ];
my @mailto = PVE::Tools::split_list(extract_param($param, 'mailto'));
$param->{mailto} = [ @mailto ];
$res->{size} = int($1);
} elsif ($line =~ m/maxfiles:\s*(\d+)\s*$/) {
$res->{maxfiles} = int($1);
+ } elsif ($line =~ m/exclude-path:\s*(.*)\s*$/) {
+ $res->{'exclude-path'} = PVE::Tools::split_args($1);
} elsif ($line =~ m/mode:\s*(stop|snapshot|suspend)\s*$/) {
$res->{mode} = $1;
} else {
$self->find_add_exclude ('-type', 's'); # skip sockets
+ if ($defaults->{'exclude-path'}) {
+ foreach my $path (@{$defaults->{'exclude-path'}}) {
+ $self->find_add_exclude ('-regex', $path);
+ }
+ }
+
if ($opts->{'exclude-path'}) {
foreach my $path (@{$opts->{'exclude-path'}}) {
$self->find_add_exclude ('-regex', $path);
next if $p eq 'id' || $p eq 'vmid' || $p eq 'starttime' || $p eq 'dow';
my $v = $param->{$p};
my $pd = $confdesc->{$p} || die "no such vzdump option '$p'\n";
- $cmd .= " --$p " . PVE::Tools::shellquote($v) if defined($v) && $v ne '';
+ if ($p eq 'exclude-path') {
+ foreach my $path (split(/\0/, $v || '')) {
+ $cmd .= " --$p " . PVE::Tools::shellquote($path);
+ }
+ } else {
+ $cmd .= " --$p " . PVE::Tools::shellquote($v) if defined($v) && $v ne '';
+ }
}
return $cmd;