Verified Commit ecc7fd75 authored by anarcat's avatar anarcat
Browse files

document how to exclude files from backups better (team#41627)

parent e95e5e82
Loading
Loading
Loading
Loading
+23 −4
Original line number Diff line number Diff line
@@ -706,11 +706,30 @@ Other files or directories can be excluded in two ways:
 2. add the file(s) to the `/etc/bacula/local-exclude` configuration
    file (lines that start with `#` are comments, one file per line)

That configuration is made in the
The latter is managed by Puppet, use a `file_line` resource to add
entries in there, for example see the `profile::discourse` class which
does something like:

    file_line { "discourse_exclude_logs":
      path => '/etc/bacula/local-exclude',
      line => "/srv/discourse/shared/standalone/logs",
    }

The `.nobackup` file should also be managed by Puppet. Use a
`.nobackup` file when you are deploying a host where you control the
directory, and a `local-exclude` when you do not. In the above
example, Discourse manages the `/srv/discourse/shared/standalone`
directory so we cannot assume a `.nobackup` file will survive upgrades
and reconfiguration by Discourse.

### How include/exclude patterns work

The exclude configuration is made in the
`modules/bacula/templates/bacula-dir.conf.erb` Puppet template,
deployed in `/etc/bacula/bacula-dir.conf` on the director. The files
to be *included* in the backups are basically "any mounted filesystem
that is not a bind mount and one of `ext{2,3,4}`, `xfs` or
deployed in `/etc/bacula/bacula-dir.conf` on the director. 

The files to be *included* in the backups are basically "any mounted
filesystem that is not a bind mount and one of `ext{2,3,4}`, `xfs` or
`jfs`". *That* logic is defined in the
`modules/bacula/files/bacula-backup-dirs` Puppet file, deployed in
`/usr/local/sbin/bacula-backup-dirs` on backup clients.