Bacula 2: Webmin GUI to Administration and Configuration

Configure lots of Bacula elements as clients, jobs, filesets, tape-libraries, all through a graphical interface.
4.7 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
38 students enrolled
62% off
Take This Course
  • Lectures 28
  • Length 2.5 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 9/2015 English

Course Description

The Webmin interface is the most complete Bacula configuratio graphical interface available nowadays!

This training is part of a serie that will lead you to be an administration and configuration backup experte using free software.

Learn how to :

  • Install and configure Webmin
  • Set up a new Bacula Server
  • Add clients, jobs, filesets and backup schedules, graphically
  • Configure storage devices and tape-libraries
  • Submit backups and restores using Webmin GUI
  • And more.

Webmin is fully customizable in terms of access control, monitoring of server resources, change of appearance through themes etc.

Developed in Perl, Bacula module is relatively simple to have the edited code and have other commands added.

What are the requirements?

  • Basic Linux

What am I going to get from this course?

  • Configure Bacula Graphically
  • Add new Windows and Linux Clients
  • Set up and run backup and restore jobs using the GUI
  • Configure tape libraries
  • Fetch volume information through Webmin
  • Run client, storage and director status
  • Improve Bacula Concepts

Who is the target audience?

  • System Administrators
  • DevOps
  • Backup Managers
  • IT Managers

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

And at the first day God made.... Backup! =)

Fetch the written course complimentary material - my Bacula ebook from 

My website:

Bacula full Manual:

Be my friend at Facebook:

Remark: If you need in-company Bacula training or implementation worldwide send a email to

Webmin Introduction
Bacula + Webmin Requirements
Section 2: Webmin Debian 8 Install

apt-get install libnet-ssleay-perl openssl libauthen-pam-perl libio-pty-perl python apt-show-versions libdbd-mysql-perl libpg-perl libdbd-pg-perl




dpkg -i webmin_1.760_all.deb

Section 3: Webmin CentOS 7 Install

yum -y install perl perl-Net-SSLeay openssl perl-IO-Tty perl-DBD-MySQL perl-DBD-Pg




rpm -U webmin-1.760-1.noarch.rpm

Selinux Disable:

vi /etc/selinux/config

Set both values to disabled.

Section 4: Webmin Setup

You can download and try other webmin themes from this site:

Bacula Webmin Module Configuration
Section 5: Initial Director Daemon configuration

If you want to change quickly the Director Name in all Bacula server configuration files, it the name that was fetch from the hostname is not significative:

sed -i s/localhost.localdomain-dir/bacula-dir/g /etc/bacula/*.conf

Or maybe change the name of all daemons at once:

sed -i s/localhost.localdomain/bacula/g /etc/bacula/*.conf

Restart Bacula daemons to apply changes.

bacula-dir.conf Initial Configuration: Jobs
bacula-dir.conf Initial Configuration: Clients

CORRECTION: for Label Format variables usage you must use quotes, even inserting information with Webmin,

Nas pools a diretiva de tempo "Volume Use Duration" garante que o volume seja encerrado e a retenção comece a ser contada.

bacula-dir.conf Initial Configuration: FileSets

Never use localhost at Storage address configuration. If you are building Bacula from source you can specify the local network address at the code configuration. See more at, compilation.


Remark: editing the Schedule on bacula-dir.conf text file may grant lots of another options, like specifying different storages, Next Pool (copy jobs), enable or disable compression etc.

Section 6: Initial Storage Daemon Configuration
bacula-sd.conf Initial Configuration: Storage Daemon

The fresh disk configuration for devices (e.g.: Random Access=yes) are the optimum for disk based backups and normally you should not need to change anything.

Remark: if you deleted the devices from the second group (FileChgr2) like I did in the video you MUST also delete the group configuration within /etc/bacula/bacula-sd.conf and restart Storage Daemon to apply changes. Those are the lines:

Autochanger {

Name = FileChgr2

Device = FileChgr2-Dev1, FileChgr2-Dev2

Changer Command = ""

Changer Device = /dev/null



Remark: if you have a cleaning tape into your tape library you must put the directive "Cleaning Prefix=CLN" in all Bacula pools, so Bacula wont try to create a volume on them when submitting the label barcodes command.

Section 7: New Linux Clients

Remark: if you can't see the client list using the Webmin status client or restore command you may need to make a minor adjustment in webmin code. E.g.:

vi /usr/libexec/webmin/bacula-backup


local @rv;
local $client;
foreach my $l (split(/\r?\n/, $clients)) {
# if ($l =~ /^Client:\s+name=([^=]*\S)\s/ ||
if ($l =~ /^Client:\s+Name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
$client = { 'name' => $1 };
if ($l =~ /address=(\S+)/ && $client) {
$client->{'address'} = $1;


New FileSet and Job
Section 8: New Windows Clients
Client Configuration
New Windows FileSet and Job
Section 9: Webmin Bacula Operations

Remark: if you can't see the client list using the Webmin status client or restore command you may need to make a minor adjustment in webmin code. E.g.:

vi /usr/libexec/webmin/bacula-backup/


local @rv;
local $client;
foreach my $l (split(/\r?\n/, $clients)) {
# if ($l =~ /^Client:\s+name=([^=]*\S)\s/ ||
if ($l =~ /^Client:\s+Name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
$client = { 'name' => $1 };
if ($l =~ /address=(\S+)/ && $client) {
$client->{'address'} = $1;


Other Operations
Section 10: That's it!
See you later.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Heitor Medrado De Faria, Bacula Backup Software Book Author and Teacher

"Bacula: Open Source Backup Tool" and "Open Licenses & Fundamental Rights" books author (both in portuguese). Bacula Training instructor at Udemy. Law Graduated. IT Service Manager and Project Management extension degrees. Works on a brazilian governmental company called SERPRO and for Neocode Software (Canada). Bacula brazilian community founder. Has plenty of experience as a server / backup systems administrator (Windows, Linux, Netware, directory services) and as IT / Project manager. ITIL-F, TOEIC (Golden Certificate) and LPIC-III certificated professional.

Ready to start learning?
Take This Course