Bacula : Add remote Clients2026/07/07 |
|
It's possible to add remote Hosts as backup target Clients. +----------------------+ | +----------------------+ | [ Bacula Server ] |10.0.0.30 | 10.0.0.51| [ Bacula Client ] | | Bacula Director +----------+----------+ (Backup Target) | | Bacula Storage | | Bacula File Daemon | | Bacula File Daemon | | | | PostgreSQL | | | +----------------------+ +----------------------+ |
| [1] | |
| [2] | Configure Bacula Server. |
|
root@dlp:~#
vi /etc/bacula/bacula-dir.conf # add to last line # define job JobDefs { Name = "Job-node01" Type = Backup Level = Incremental # specify [Name] value of [Client] section Client = node01 # specify [Name] value of [FileSet] section FileSet = "Node01 Set" Schedule = "WeeklyCycle" Storage = File1 Messages = Standard Pool = File SpoolAttributes = yes Priority = 10 Write Bootstrap = "/var/lib/bacula/%c.bsr" } # define backup job Job { Name = "node01-BackupClient" # specify [Name] value of [Client] section Client = node01 # specify [Name] value of [JobDefs] section JobDefs = "Job-node01" } # define File Set FileSet { Name = "Node01 Set" Include { Options { signature = MD5 } # backup target directory File = /etc } } # define client Client { Name = node01 # client hostname or IP address Address = node01.srv.world FDPort = 9102 Catalog = MyCatalog # password for File daemon Password = "password" File Retention = 60 days Job Retention = 6 months AutoPrune = yes }
root@dlp:~#
systemctl restart bacula-dir
# if UFW is enabled, allow services root@dlp:~# ufw allow bacula-dir root@dlp:~# ufw allow bacula-sd Rule added Rule added (v6) |
| [3] | Configure Bacula Client. |
|
root@node01:~#
apt -y install bacula-fd bacula-client bacula-console
root@node01:~#
vi /etc/bacula/bacula-fd.conf
Director {
# line 16 : change to Director name
# line 17 : password for File daemon
Name = dlp.srv.world-dir
Password = "password"
}
.....
.....
Director {
# line 25 : change to Director name
# line 26 : password for File daemon
Name = dlp.srv.world-mon
Password = "password"
Monitor = yes
}
FileDaemon { # this is me
Name = node01.srv.world-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /run/bacula
Maximum Concurrent Jobs = 20
Plugin Directory = /usr/lib/bacula
# line 40 : listening address
FDAddress = 0.0.0.0
Messages {
Name = Standard
# line 46 : change to Director name
director = dlp.srv.world-dir = all, !skipped, !restored
}
root@node01:~#
vi /etc/bacula/bconsole.conf
Director {
# Director name
Name = dlp.srv.world-dir
DIRport = 9101
# hostname or IP address of Director daemon
address = dlp.srv.world
# password which is set in Director
Password = "password"
}
root@node01:~#
systemctl restart bacula-fd
# is UFW is enabled, allow service port root@node01:~# ufw allow bacula-fd Rule added Rule added (v6) |
| [5] | That's OK. It's possible to run backup and restore operation on both Server or Client. For example, run backup and restore on Client Host. |
|
# backup root@node01:~# bconsole Connecting to Director dlp.srv.world:9101 1000 OK: 10002 dlp.srv.world-dir Version: 15.0.3 (25 March 2025) Enter a period to cancel a command. *label Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" The defined Storage resources are: 1: File1 2: File2 Select Storage resource (1-2): 1 Connecting to Storage daemon File1 at dlp.srv.world:9103 ... Enter autochanger drive[0]: Enter new Volume name: Vol_node01-etc_20260707 Enter slot (0 or Enter for none): Defined Pools: 1: Default 2: File 3: Scratch Select the Pool (1-3): 2 Connecting to Storage daemon File1 at dlp.srv.world:9103 ... Sending label command for Volume "Vol_node01-etc_20260707" Slot 0 ... 3000 OK label. VolBytes=263 VolABytes=0 VolType=1 UseProtect=0 VolEncrypted=0 Volume="Vol_node01-etc_20260707" Device="FileChgr1-Dev1" (/tmp) Catalog record for Volume "Vol_node01-etc_20260707", Slot 0 successfully created. Requesting to mount FileChgr1 ... 3906 File device ""FileChgr1-Dev1" (/tmp)" is always mounted. *run A job name must be specified. The defined Job resources are: 1: BackupClient1 2: BackupCatalog 3: RestoreFiles 4: node01-BackupClient Select Job resource (1-4): 4 Run Backup job JobName: node01-BackupClient Level: Incremental Client: node01 FileSet: Node01 Set Pool: File (From Job resource) Storage: File1 (From Job resource) When: 2026-07-07 01:20:55 Priority: 10 OK to run? (yes/mod/no): yes Job queued. JobId=3 You have messages. *exit # restore root@node01:~# bconsole Connecting to Director dlp.srv.world:9101 1000 OK: 10002 dlp.srv.world-dir Version: 15.0.3 (25 March 2025) Enter a period to cancel a command. *restore Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" First you select one or more JobIds that contain files to be restored. You will be presented several methods of specifying the JobIds. Then you will be allowed to select which files from those JobIds are to be restored. To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Find the JobIds of the most recent backup for a client 10: Find the JobIds for a backup for a client before a specified time 11: Enter a list of directories to restore for found JobIds 12: Select full restore to a specified Job date 13: Select object to restore 14: Cancel Select item: (1-14): 5 Defined Clients: 1: dlp.srv.world-fd 2: node01 Select the Client (1-2): 2 Automatically selected FileSet: Node01 Set +-------+-------+----------+-----------+---------------------+-------------------------+ | jobid | level | jobfiles | jobbytes | starttime | volumename | +-------+-------+----------+-----------+---------------------+-------------------------+ | 3 | F | 1,712 | 2,345,687 | 2026-07-07 01:21:03 | Vol_node01-etc_20260707 | +-------+-------+----------+-----------+---------------------+-------------------------+ You have selected the following JobId: 3 Building directory tree for JobId(s) 3 ... +++++++++++++++++++++++++++++++++++++++++++ 1,506 files inserted into the tree. You are now entering file selection mode where you add (mark) and remove (unmark) files to be restored. No files are initially added, unless you used the "all" keyword on the command line. Enter "done" to leave this mode. cwd is: / $ ls etc/ $ mark etc 1,712 files marked. $ done Bootstrap records written to /var/lib/bacula/dlp.srv.world-dir.restore.1.bsr The Job will require the following (*=>InChanger): Volume(s) Storage(s) SD Device(s) =========================================================================== Vol_node01-etc_20260707 File1 FileChgr1 Volumes marked with "*" are in the Autochanger. 1,712 files selected to be restored. Using Catalog "MyCatalog" Run Restore job JobName: RestoreFiles Bootstrap: /var/lib/bacula/dlp.srv.world-dir.restore.1.bsr Where: /tmp Replace: Always FileSet: Full Set Backup Client: dlp.srv.world-fd Restore Client: node01 Storage: File1 When: 2026-07-07 01:22:41 Catalog: MyCatalog Priority: 10 Plugin Options: *None* OK to run? (yes/mod/no): yes Job queued. JobId=4 *exitroot@node01:~# ll /tmp/etc
total 496
drwxr-xr-x 111 root root 4040 Jul 7 01:10 ./
drwxrwxrwt 12 root root 240 Jul 7 01:22 ../
-rw------- 1 root root 0 Apr 20 18:05 .pwd.lock
-rw-r--r-- 1 root root 862 Apr 20 18:06 .resolv.conf.systemd-resolved.bak
-rw-r--r-- 1 root root 255 Apr 20 18:05 .updated
drwxr-xr-x 5 root root 100 Apr 20 18:22 ModemManager/
drwxr-xr-x 2 root root 80 Jul 4 14:26 PackageKit/
drwxr-xr-x 3 root root 80 Apr 20 18:07 UPower/
drwxr-xr-x 4 root root 80 Apr 20 18:06 X11/
-rw-r--r-- 1 root root 4027 Nov 4 2025 adduser.conf
drwxr-xr-x 2 root root 2380 Apr 20 18:22 alternatives/
drwxr-xr-x 2 root root 60 Apr 20 18:07 apparmor/
drwxr-xr-x 9 root root 3260 Jul 4 14:26 apparmor.d/
drwxr-xr-x 3 root root 80 Apr 20 18:07 apport/
.....
.....
# restored
|
| Sponsored Link |
|
|