Martin, thanks, I admit that for me the fileset definition is one of the more 
confusing things in Bacula. Thanks for the explanation, however, honestly, I 
don’t get it. 

I adapted the fileset according to your proposal, and this is what baculum 
makes from it:

Fileset {
Name = "test-appdata"
EnableVss = no
EnableSnapshot = no
Include {
File = "/home/dockerman"
Options {
OneFs = "No"
RegexDir = "^/home/dockerman/containerdata-"
}
Options {
OneFs = "No"
Exclude = "Yes"
RegexDir = "^/home/dockerman/[^/]+$"
}
}

Running this results in actually nearly the same result. The delta of the 
outcome are actually 3 files (gleaned form the numbers of the jobs, I don’t 
know which files that are). 

Does the order of the declarations (as seen above) have anything to do with 
this result?

> On 26. Aug 2022, at 21:24, Martin Simmons <mar...@lispworks.com> wrote:
> 
>>>>>> On Fri, 26 Aug 2022 20:41:22 +0200, Justin Case said:
>> 
>> So actually, the fileset did back up the /home/../containerdata.. stuff, but
>> also other files outside of /home/,,,/containderdata, which I did not intend
>> to happen.
>> 
>> in the /home/dockerman there are only dot-files sich as .Xauthority and
>> .ssh/config Why would those have been backed up by this fileset?
>> 
>> And then I realized that this was also the case for the compound fileset!
>> The fileset does actually back up the containerdata-* folder contents both
>> in /home/dockerman and in /mnt. The amount of data in /home is just much
>> smaller and in baculum the order of the files shown suggested that files
>> other then /home/../containerdata-… were backed up, and the files on
>> containerdata couldn’t be seen in the file list.
>> 
>> Still the same caveat as above holds for the compound fileset, too. I don’t
>> understand that.
> 
> It does that because your fileset definition tells it to :-)
> 
> The problem is that "^/home/dockerman/.*/" only matches directories two levels
> below /home/dockerman, such as /home/dockerman/dir1/dir2.  Everything above
> that is included, for example directories like /home/dockerman/dir1 and files
> like /home/dockerman/file1 and /home/dockerman/dir1/file1.
> 
> I think this does what you want:
> 
>  Include {
>    Options {
>      OneFs = no
>      # override the Exclude for this prefix
>      RegexDir = "^/home/dockerman/containerdata-"
>    }
>    Options {
>      OneFs = no
>      Exclude = yes
>      # disallow all top-level things not explicitly included above
>      Regex = "^/home/dockerman/[^/]+$"
>    }
>    File = "/home/dockerman"
>  }
> 
> Note that the paths inside the /home/dockerman/containerdata-... directories
> will be included implicitly because they don't match the excluded Regex.  The
> Options (except Exclude) from the last clause will be used for those paths.
> 
> __Martin



_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to