백업 서버 · 6 min read · Dec 08, 2025

Ubuntu 20.04에 Bacula 백업 서버 설치하기

Bacula는 네트워크를 통해 데이터를 백업하고 복원하는 데 사용할 수 있는 오픈 소스 백업 도구입니다. 사용이 간편하고 많은 고급 저장 관리 기능을 제공하여 손실된 파일을 쉽게 백업하고 복구할 수 있도록 도와줍니다. Linux, Windows 및 macOS 백업 클라이언트를 지원하며 다양한 백업 장치도 지원합니다. Bacula는 Bacula 디렉터리, Bacula 콘솔, Bacula 스토리지, Bacula 파일 및 Bacula 카탈로그를 포함한 여러 구성 요소로 구성됩니다. 각 구성 요소는 특정 작업을 관리하는 책임이 있습니다.

이 튜토리얼에서는 Ubuntu 20.04에서 Bacula 백업 시스템을 설치하고 구성하는 방법을 보여드리겠습니다.

전제 조건

  • 최소 2GB RAM이 장착된 Ubuntu 20.04 서버.
  • 서버에 루트 비밀번호가 설정되어 있어야 합니다.

시작하기

먼저 시스템을 최신 안정 버전으로 업데이트해야 합니다. 다음 명령어로 업데이트할 수 있습니다:

apt-get update -y

모든 패키지가 업데이트되면 다음 단계로 진행할 수 있습니다.

Bacula 설치

기본적으로 Bacula 패키지는 Ubuntu 20.04 기본 저장소에 있습니다. 다음 명령어를 사용하여 쉽게 설치할 수 있습니다:

apt-get install bacula -y

설치 중에 아래와 같이 메일 서버를 선택하라는 메시지가 표시됩니다:

Postfix configuration

원하는 메일 서버를 선택하고 Ok 버튼을 클릭합니다. 아래와 같이 시스템 메일 이름을 제공하라는 메시지가 표시됩니다:

System mail name

시스템 메일 이름을 제공하고 Ok 버튼을 클릭합니다. 아래와 같이 bacula에 대한 데이터베이스를 구성하라는 메시지가 표시됩니다:

Bacula directore Postgres

버튼을 클릭합니다. 아래와 같이 PostgreSQL 서버의 호스트를 선택하라는 메시지가 표시됩니다:

PostgreSQL database host

localhost를 선택하고 Ok 버튼을 클릭합니다. 아래와 같이 PostgreSQL 비밀번호를 제공하라는 메시지가 표시됩니다:

PostgreSQL password

원하는 비밀번호를 제공하고 설치를 계속 진행하려면 Ok 버튼을 클릭합니다.

Bacula 패키지가 설치되면 다음 단계로 진행할 수 있습니다.

Bacula 스토리지 구성

시작하기 전에 백업 파일을 저장할 디렉터리를 생성합니다. 다음 명령어로 생성할 수 있습니다:

mkdir /backup

다음으로, 다음 명령어로 bacula 디렉터리의 소유권을 bacula 사용자 및 그룹으로 변경합니다:

chown -R bacula:bacula /backup

다음으로, bacula 스토리지 기본 구성 파일을 편집하고 장치 및 저장소의 위치를 정의해야 합니다.

nano /etc/bacula/bacula-sd.conf

다른 “Device {“ 및 “Autochanger {“ 섹션을 제거하거나 주석 처리하고 다음 줄을 추가합니다:

Device {
Name = Local-device
Media Type = File
Archive Device = /backup
LabelMedia = yes; # Bacula가 레이블이 없는 미디어에 레이블을 붙이도록 허용
Random Access = Yes;
AutomaticMount = yes; # 장치가 열리면 읽기
RemovableMedia = no;
AlwaysOpen = no;
Maximum Concurrent Jobs = 5
}

작업이 끝나면 파일을 저장하고 닫습니다. 그런 다음 다음 명령어를 사용하여 Bacula 스토리지 서비스를 재시작합니다:

systemctl restart bacula-sd.service

다음 명령어로 Bacula 스토리지의 상태를 확인할 수 있습니다:

systemctl status bacula-sd

다음과 같은 출력이 표시되어야 합니다:

? bacula-sd.service - Bacula Storage Daemon service
     Loaded: loaded (/lib/systemd/system/bacula-sd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-10-06 09:32:43 UTC; 8s ago
       Docs: man:bacula-sd(8)
    Process: 10687 ExecStartPre=/usr/sbin/bacula-sd -t -c $CONFIG (code=exited, status=0/SUCCESS)
   Main PID: 10688 (bacula-sd)
      Tasks: 2 (limit: 4691)
     Memory: 1.0M
     CGroup: /system.slice/bacula-sd.service
             ??10688 /usr/sbin/bacula-sd -fP -c /etc/bacula/bacula-sd.conf

Oct 06 09:32:43 ubuntu2004 systemd[1]: Starting Bacula Storage Daemon service...
Oct 06 09:32:43 ubuntu2004 systemd[1]: Started Bacula Storage Daemon service.

Bacula 디렉터 구성

다음으로, Bacula 디렉터 구성 파일을 편집하고 저장소 위치를 제공해야 합니다. 다음 명령어로 편집할 수 있습니다:

nano /etc/bacula/bacula-dir.conf

다음 줄을 추가합니다. 여기에는 장치 이름, 저장소 이름, 비밀번호, 작업 등이 포함됩니다.

Storage {
Name = ubuntu2004-sd  # /etc/bacula/bacula-sd.conf 파일의 "Storage" 섹션의 "Name" 매개변수와 같아야 합니다
Address = 127.0.0.1
Password = "aFEH-0a3QycsbYQVcoy_VoUMhAHJQ00CD" # 비밀번호는 /etc/bacula/bacula-sd.conf의 비밀번호와 일치해야 합니다
Device = Local-device
Media Type = File
}

FileSet {
Name = "Local-file"
Include {
Options {
signature = MD5
}
File = /etc 
}
}

Schedule {
Name = "LocalDaily"
Run = Full daily at 06:00
}

Job {
Name = "LocalBackup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = "Local-file"
Schedule = "LocalDaily"
Storage = ubuntu2004-sd
Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
}

작업이 끝나면 파일을 저장하고 닫은 다음 변경 사항을 적용하기 위해 Bacula 디렉터 서비스를 재시작합니다:

systemctl restart bacula-dir

다음 명령어로 Bacula 디렉터 서비스의 상태를 확인할 수도 있습니다:

systemctl status bacula-dir

다음과 같은 출력이 표시되어야 합니다:

? bacula-director.service - Bacula Director Daemon service
     Loaded: loaded (/lib/systemd/system/bacula-director.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-10-06 09:32:43 UTC; 9s ago
       Docs: man:bacula-dir(8)
    Process: 10667 ExecStartPre=/usr/sbin/bacula-dir -t -c $CONFIG (code=exited, status=0/SUCCESS)
   Main PID: 10683 (bacula-dir)
      Tasks: 3 (limit: 4691)
     Memory: 2.1M
     CGroup: /system.slice/bacula-director.service
             ??10683 /usr/sbin/bacula-dir -fP -c /etc/bacula/bacula-dir.conf

Oct 06 09:32:43 ubuntu2004 systemd[1]: Starting Bacula Director Daemon service...
Oct 06 09:32:43 ubuntu2004 systemd[1]: Started Bacula Director Daemon service.

백업 작업 확인

이 시점에서 Bacula가 설치되고 매일 6시에 실행되도록 구성되었습니다. 이제 Bacula 콘솔을 사용하여 첫 번째 백업 작업을 실행해 보겠습니다.

bconsole

연결되면 다음과 같은 출력이 표시되어야 합니다:

Connecting to Director localhost:9101
1000 OK: 103 ubuntu2004-dir Version: 9.4.2 (04 February 2019)
Enter a period to cancel a command.

다음으로, 다음 명령어를 실행하여 백업 작업을 시작합니다:

*run

아래와 같이 백업 작업을 선택하라는 메시지가 표시됩니다:

Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: LocalBackup
     3: BackupCatalog
     4: RestoreFiles
Select Job resource (1-4): 2

2를 입력하여 구성 파일에 정의한 LocalBackup을 선택하고 Enter를 누릅니다. 다음과 같은 출력이 표시되어야 합니다:

Run Backup job
JobName:  LocalBackup
Level:    Full
Client:   ubuntu2004-fd
FileSet:  Local-file
Pool:     File (From Job resource)
Storage:  ubuntu2004-sd (From Job resource)
When:     2020-10-06 09:50:47
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=3
You have messages.

이 시점에서 백업 작업이 시작됩니다. 다음 명령어로 백업 작업의 상태를 확인할 수 있습니다:

*status

다음 구성 요소의 상태를 선택하라는 메시지가 표시됩니다:

Status available for:
     1: Director
     2: Storage
     3: Client
     4: Scheduled
     5: Network
     6: All
Select daemon type for status (1-6): 1

1을 입력하고 Enter를 눌러 디렉터의 상태를 확인합니다. 다음과 같은 출력이 표시되어야 합니다:

ubunt2004-dir Version: 9.4.2 (04 February 2019) x86_64-pc-linux-gnu ubuntu 20.04
Daemon started 06-Oct-20 09:50, conf reloaded 06-Oct-2020 09:50:27
 Jobs: run=1, running=0 mode=0,0
 Heap: heap=274,432 smbytes=106,782 max_bytes=135,168 bufs=343 max_bufs=377
 Res: njobs=4 nclients=1 nstores=3 npools=3 ncats=1 nfsets=3 nscheds=3

Scheduled Jobs:
Level          Type     Pri  Scheduled          Job Name           Volume
===================================================================================
Full           Backup    10  07-Oct-20 06:00    LocalBackup        Vol-0001
====

Running Jobs:
Console connected at 06-Oct-20 09:50
No Jobs running.
====

Terminated Jobs:
 JobId  Level      Files    Bytes   Status   Finished        Name 
====================================================================
     1  Full       2,262    2.875 M  OK       06-Oct-20 09:50 LocalBackup

====

다음으로, 상태 명령을 다시 실행하고 Bacula 스토리지의 상태를 확인합니다.

*status

다음과 같은 출력이 표시되어야 합니다:

Status available for:
     1: Director
     2: Storage
     3: Client
     4: Scheduled
     5: Network
     6: All
Select daemon type for status (1-6): 2
The defined Storage resources are:
     1: File1
     2: ubuntu2004-sd
Select Storage resource (1-2): 1
Connecting to Storage daemon File1 at localhost:9103

ubuntu2004-sd Version: 9.4.2 (04 February 2019) x86_64-pc-linux-gnu ubuntu 20.04
Daemon started 06-Oct-20 09:50. Jobs: run=1, running=0.
 Heap: heap=106,496 smbytes=369,301 max_bytes=567,404 bufs=90 max_bufs=110
 Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0 newbsr=0
 Res: ndevices=1 nautochgr=0

Running Jobs:
No Jobs running.
====

Jobs waiting to reserve a drive:
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name 
===================================================================
     3  Full      2,262    3.156 M  OK       06-Oct-20 09:50 LocalBackup
====

Device status:

Device File: "Local-device" (/backup) is not open.
   Available Space=93.95 GB
==
====

Used Volume status:
====

Attr spooling: 0 active jobs, 454,546 bytes; 1 total jobs, 454,546 max bytes.
====

다음으로, 다음 명령어로 Bacula 콘솔에서 종료합니다:

*exit

다음으로, 다음 명령어로 백업 디렉터리를 확인합니다:

ls /backup/

Vol-0001 백업이 생성된 것을 확인할 수 있습니다:

Vol-0001

결론

축하합니다! Ubuntu 20.04 서버에 Bacula 백업을 성공적으로 설치하고 구성했습니다. 이제 원격 머신에 Bacula 클라이언트를 설치하고 클라이언트 시스템을 쉽게 백업할 수 있습니다. 질문이 있으시면 언제든지 문의해 주세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.