to make the behavior consistent across modes. For suspend mode, relative patterns worked for a long time, because the exclusion already happens when rsync copies the data during an earlier stage of the backup.
For the other two methods, the way the patterns are passed to tar (after the '--anchored' option and prefixed with a dot) meant that relative patterns had no effect previously. Users which have a relative exclude path by accident (if it's not by accident then this fixes the behavior) and did not use suspend mode (if they did use suspend mode, they hopefully would have noticed the unintended exclusion then) will be affected by this change. Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- The alternative way to make things consistent is to warn/die on relative patterns and not pass along relative patterns to rsync. That would be a breaking change for the (likely few) existing users of relative patterns. With the approach from the patch, the behavior is also consisten with pxar/manual usage of proxmox-backup-client. And the next patch further unifies the behavior for non-manual usage of the backup client. src/PVE/VZDump/LXC.pm | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm index c02c6e1..eb07430 100644 --- a/src/PVE/VZDump/LXC.pm +++ b/src/PVE/VZDump/LXC.pm @@ -426,9 +426,23 @@ sub archive { push @$tar, "--directory=$tmpdir", './etc/vzdump/pct.conf'; push @$tar, "./etc/vzdump/pct.fw" if $task->{fw}; push @$tar, "--directory=$snapdir"; - push @$tar, '--no-anchored', '--exclude=lost+found' if $userns_cmd; + + my @findexcl_no_anchored = (); + my @findexcl_anchored = (); + foreach my $pattern (@{$findexcl}) { + if ($pattern !~ m|^/|) { + push @findexcl_no_anchored, $pattern; + } else { + push @findexcl_anchored, $pattern; + } + } + + push @$tar, '--no-anchored'; + push @$tar, '--exclude=lost+found' if $userns_cmd; + push @$tar, map { "--exclude=$_" } @findexcl_no_anchored; + push @$tar, '--anchored'; - push @$tar, map { "--exclude=.$_" } @{$findexcl}; + push @$tar, map { "--exclude=.$_" } @findexcl_anchored; push @$tar, @sources; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel