How would we setup bacula so that it creates file volumes in a manner where the volume names (labels) are predictable and things work well with rsync so that we're not sending massive amounts of data across the wire?

General strategy would be to write a full backup on 1st Sunday of the month, differentials on the other Sundays, and incrementals Mon-Sat. So we would want (3) files created, one for the "full", 1-5 for the "differentials", plus 1-6 for the "incrementals".

My thinking is that the first line of defense is the "Label Format" directive in the Pool resource. Using a label format like "${Storage}-${Job}-${Pool}-${Level}-${MediaType}" on the pool definition and using (3) different pools for (full / incremental / differential) seems like it would work, but I'm not sure how to convince Bacula to append on the proper days and recycle on the proper days.


Don't try to outsmart your tools - Set up a sane tape rotation and let Bacula do what Bacula does. rsync will figure out how to sync the data with a minimum amount of traffic over the wire.

Bacula volumes are already inherently compatible with rsync, the same way any file is:

  • If the file is new, or substantially rewritten, rsync will transfer the whole thing.
  • If the file has been appended to, rsync will transfer the new data.
  • If the file has been modified in a way other than simply appending to it, rsync will transfer the changed blocks.

Unless told to do otherwise Bacula will keep writing to a file until it reaches the maximum volume size you specified, and rsync will send only the appended data (remember a Bacula volume file is basically a glorified tape with better random access seek times).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.