2

Problem

After building a Proof-of-Concept setup of Bareos, I can add and update various components like Clients, Devices, etc. But when modifying a FileSet, those changes are not reflected in the running Bareos config.

Details and research

PoC is built on Bareos 20.0.1, installed on a CentOS Linux 8.3 box. Till now all components, concepts and tasks are working as excepted. I can run backup and restore jobs succesfully.

When running bconsole, show filesets the updated fileset is visible (so it is read from config).

When running bconsole, list filesets the previous original fileset is listed. None of my modifications (i.e. added exclusions) is reflected over here.

When running jobs for new clients or rerunning previous jobs, I see no diferrence in FileSets in logging and no effects of my modifications (fewer files due to added exclusions).

Details:

  • Config file location: /etc/bareos/bareos-dir.d/fileset/XX.conf
  • Config file ownership: bareos:bareos

What I've tried

I've tried to reload/restart Bareos in a few ways, with no difference:

  • bconsole, reload
  • systemctl restart bareos-dir
  • reboot server

Tried to educate myself by Bareos and Bacula official documentation of various versions, but couldn't find a specific part which describes this behaviour.

acropia
  • 51
  • 2
  • Do you have "ignore fileset changes" option used somewhere in your FileSet? Also, if you try to see which filesets you really have (via SQL query to the Bareos database: `select * from FileSet`), do you see newest filesets there (only hashes, but you can deduce which one is new by the datetime)? – Nikita Kipriyanov Mar 19 '21 at 14:40
  • The setting "Ignore File Set Changes" is not set by me, and should fallback to the default setting of "no". When I query the database I only see the original first version of my fileset. Just like `bconsole`, `list filesets` does. There is no record of my modified fileset in the database. – acropia Mar 21 '21 at 12:19
  • It seems it didn't read your configuration file. What's in the log files? Are you sure you put FileSet description into correct place where it is expected by BareOS? In my installations, all based on Debian 9 or 10, BareOS 16, 18, 19 or 20, this is `/etc/bareos/bareos-dir.d/fileset/.conf`. Earlier BareOS and Bacula versions (I began using Bacula at version 2.4 and Bareos at version 14) did not use split configuration, so there wasn't such directory-separated structure. Are permissions correct? By the way, which software versons (at least OS and BareOS) do you use? – Nikita Kipriyanov Mar 21 '21 at 14:50
  • I think Bareos is able to read the config, because `bconsole`, `show filesets` does list the updated version. I'm sure the config file is in the right place, because my first original version was exactly the same location (`/etc/bareos/bareos-dir.d/fileset/XX.conf`). After a few jobs I modified the same file to add some exclusions. There is no new file, and the ownership of `bareos:bareos` is also still in place. Software versions: Bareos 20.0.1 on CentOS Linux 8.3 – acropia Mar 22 '21 at 07:24
  • A little Work-in-Progress update from me: It looks like filesets in Bareos are only updated, when the Include statement itself has modified configuration. The exclusions I've added in `Fileset, Include, Options` were not reflected to the Bareos database. But now I've added a dummy `Fileset, Include, File` config in the same fileset, the modified fileset is reflected in the database after a started Job with that fileset. I'm test driving this now, and update this thread shortly with the outcome. – acropia Mar 23 '21 at 10:20
  • Interesting, I ran in a situation when the only change was `Exclude` set with Bacula, and there was no descirbed behaviour, all was updated correctly. – Nikita Kipriyanov Mar 23 '21 at 10:24

1 Answers1

0

After testing different situations I've found a solution/workaround. I'm not exactly sure if the current behaviour is intended or bugging, because I can not find anything about it in documentation. And I'm not skilled enough to verify it in source code.

Workaround

  1. Modify the FileSet config file (i.e. filesets/FileSet.conf)
  2. Mofidy at minimum a FileSet, Include, File-statement, even if that is not the change you wanted.
  3. Reload Bareos Director
  4. At the next related Job-execution, the new FileSet is added to the Bareos database

The trick I now use with frequently updates on Exclusions (WildDir) is to add a dummy File-statment like: File = "/tmp/dummy-0001". And number that up on each update.

acropia
  • 51
  • 2