How to use backup schedule#

Backups are typically triggered by a job scheduler. Running backups on a defined schedule offers numerous benefits, such as automation and consistency. Bacula includes an integrated scheduler that can be configured to run backup jobs automatically.

The configuration resource responsible for scheduling Bacula backups is called Schedule. This is a Bacula Director resource, as all Bacula jobs (Backup, Copy, Migrate, Verify, Admin, etc.) are initiated by the Director.

In the Schedule resource, you can define when a job should start and how often it should run (hourly, daily, weekly, monthly, yearly, etc.). You can also specify configuration directives that override those defined in the job itself. For example, even if a job’s default level is set to Full, the Schedule can change it to Incremental or Differential for specific runs. This flexibility allows you to implement nearly any backup strategy (e.g., Grandfather-Father-Son, Tower of Hanoi).

A single Schedule can be used by multiple jobs, making it an independent and reusable resource that is not statically tied to any one job.

What is required?#

  • Any version of the Bacularis web interface

How to do it?#

In Bacularis, schedules can be created in two places:

  • From the Bacula Director configuration page.

  • During the creation of a new backup job, via the job creation wizard.

This section of the documentation focuses on the first method: configuring a Schedule from the Bacula Director configuration page. This method is more universal and can be applied to all types of jobs (not just backup jobs).

To begin, navigate to the Director page from the main menu. Under the Configure director tab, open the Schedule sub-tab and click the Add Schedule button.

Step-by-step instruction

  • Enter the Schedule name and an optional description.

  • The next section allows you to define Run blocks, which contain:

    • Time intervals specifying when jobs should run.

    • Configuration directives that override job-level directives.

../_images/bacularis_create_schedule_add_new_schedule_window.png

Time intervals#

You can choose from the following time intervals:

  • Hourly – run the job on an hourly basis e.g., every hour at 15 minutes past the hour (XX:15).

  • Daily – run the job every day e.g., every day at 14:20.

  • Weekly – run the job weekly on selected days of the week e.g., every Tuesday at 15:10.

  • Monthly – run the job monthly on selected weeks and selected days of the week e.g., the second Monday of every month at 07:40.

  • Custom – A flexible option allowing combinations of all the above. You can also specify the month (January, February, etc.) and the week of the year (e.g., first week, 40th week).

Configuration job directives#

Each Run block can override the following job directives:

  • Level – Job level (e.g., Incremental, Differential, Full).

  • Pool – Volume pool used for grouping storage volumes.

  • Storage – Target Bacula storage for backup data.

  • Messages – Configuration resource with the log types (info, warning, error, fatal, debug, etc.).

  • NextPool – Used in job types like Copy or Migrate.

  • FullPool, DifferentialPool, IncrementalPool – Specific pools for different backup levels.

  • Accurate – Enables accurate mode for detecting moved or deleted files.

  • Priority – Job execution priority.

  • SpoolData – Enables data spooling before writing to storage volumes.

  • MaxRunSchedTime – Maximum allowed runtime from the scheduled start.

Add run block#

By default, one Run block is included when adding a new schedule. You can add more blocks by clicking the Add button. Create as many blocks as needed to cover all required run times and intervals.

Once the Schedule is saved, it can be assigned to any desired Job or JobDefs. For example here:

[Main menu] => [Page: Director] => [Tab: Configure director] => [SubTab: Job] => [Button: Edit - for select job] => [Directive: Schedule]

Video guide#

You can watch a video tutorial demonstrating how to create a Bacula schedule using the Bacularis web interface.