Learn Bacula - bconsole & Job Control
Episode 4 of 23

Learn Bacula - bconsole & Job Control

This episode helps you master bconsole, Bacula's interactive console: authentication to the Director, the status, list, run, restore, and cancel commands, plus running your first backup job and monitoring its results through list jobs and list files.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Introduction

In episode 3, the three daemons were brought to life. But a backup system that never runs is just decoration. In episode 4 we use bconsole — the interactive console that is the main gateway to managing Bacula — to run the first backup and monitor its results. bconsole is not just an interface; it is a direct window into the Director: running jobs, viewing status, restoring files, and even managing volumes. Mastering bconsole means mastering Bacula.

bconsole Authentication

The Console Resource in bacula-dir.conf

bconsole connects to the Director and must pass authentication. This access is defined through the Console resource in bacula-dir.conf:

Minimal Console resource
Console {
  Name = bacula-mon
  Password = "rahasia-dir"
}

Note: the password here is the same as the Director resource's password — so anyone who can read bacula-dir.conf can essentially control your backups. This is why config file permissions must be kept strict (episode 14).

Entering bconsole

Enter bconsole
sudo -u bacula bconsole

Once connected, you'll see the * prompt. From here all commands are executed:

Check Director status
* status dir

The output shows the Director version, loaded configuration, and a resource summary. This is the fastest health check.

Basic bconsole Commands

status

Status of all components
* status dir
* status sd
* status client=client-fd
* status storage=FileStorage

status dir shows the Director summary; status sd shows the devices and volumes in use; status client=client-fd shows the File Daemon status and its last job.

list

Displays the contents of the catalog — Bacula's metadata database:

List jobs, clients, and volumes
* list jobs
* list clients
* list volumes
* list jobmedia

list jobs shows the history of all jobs with their status (Terminated, Running, Error, Canceled) — the main report you'll open every morning. Don't hesitate to ask the machine for help with help and help run.

Running a Job: run

The job we defined in episode 3 is ready to execute. Run it interactively:

Run the Backup Web job
* run job="Backup Web"

Bacula shows a summary of the job parameters (client, fileset, pool, level, storage) and asks for confirmation:

Run confirmation prompt
Run Backup job
JobName:    Backup Web
Level:      Incremental
Client:     client-fd
FileSet:    Set Dasar
Pool:       FilePool
Storage:    FileStorage
OK to run? (yes/mod/no):

Type yes. Bacula replies Job queued. JobId=1. To run it immediately without asking, use the non-interactive flag:

Run job without confirmation
* run job="Backup Web" yes

Note

When a backup runs for the first time, Bacula automatically performs a full backup (default first level). Subsequent jobs follow the schedule. To force a specific level use run job=... level=Full or level=Incremental.

Monitoring a Job

status and messages

While the job runs, check its progress:

Monitor a running job
* status dir

The Director shows active jobs with a percentage. Detailed messages are sent to a log file or email according to the Messages resource. To see the messages for a specific job:

View job messages
* messages jobid=1

list jobs and list files

When it's finished, confirm the results:

Check job results
* list jobs jobid=1
* list files jobid=1

list jobs jobid=1 shows a summary: bytes, files, level, and status. list files jobid=1 lists the files stored in the catalog — proof that the backup really captured the data.

Stopping a Job: cancel

When a job runs into trouble — for example data changing wildly or storage filling up — you can stop it:

Cancel a job
* cancel jobid=1

cancel without arguments offers a list of active jobs to choose from. A canceled job is recorded as Canceled in list jobs — not Error, so you'll know the difference when reading reports.

Warning

Cancel only stops an active job. If a backup file stops mid-way (because of an error), don't assume it's safe — some volume space may hold partial data. Check the volume status and consider pruning before reuse (episodes 6 and 9).

Practice: First Test Run

Prepare a directory of sample data, then back it up in bconsole:

Prepare test data
sudo mkdir -p /var/www
echo "halo dari backup pertama" | sudo tee /var/www/index.html
Back up test data
* run job="Backup Web" level=Full yes
* wait jobid=1
* list jobs jobid=1

If the status is Terminated with Termination: Backup OK, you've just completed your first Bacula backup. Congratulations — the hardest part of Bacula is getting through this moment correctly.

Tip

bconsole supports non-interactive command lines: bconsole -c /etc/bacula/bconsole.conf -c 'run job=...'. This is useful for automation scripts and alerts — we use it in episode 20.

Closing

Key takeaways:

  • bconsole connects to the Director using the Console resource password.
  • Core commands: status, list, run, restore, cancel, messages, help.
  • run job=... starts a job; the first level is automatically Full.
  • list jobs and list files are your backup result reports.
  • cancel stops a problematic job; distinguish the Canceled and Error statuses.

In the next episode, episode 5, we'll master FileSet — how to choose which files are backed up, include/exclude rules with wildcards and regex, the exclude = yes option, and verification with list files jobid=... and estimate. This is where your backups start becoming precise.