Ubuntuのフリーで使えるバックアップソフトの Baculaを入れてみます。
Ubuntu Serverのバックアップをするツールを探していて、Ubuntuの公式で Baculaというソフトを見つけました。
こちらが公式ページです。
Bacula.org
まだ導入の練習をしているところで、私もハッキリと捉え切れていない状態で書いていますので、曖昧な所がありますがご容赦下さい。
(後日書き直すでしょう)
有償の Enterprise版と 無償の Community版があり、前者は MySQLといったデータベースのバックアップもできるプラグインがあったりサポートがあったりするのに対して、Community版はファイルのバックアップまでのようです。
私はこのソフトの名前を聞いたことがありませんでしたが、管理用の WebGUIも持っている統合的なバックアップソフトで、複数のバックアップ対象マシンを一元的に管理できるようです。
商用ソフトの ArcServe・BackupExec等と似たようなソフトなんでしょう
Commnunity版のマニュアルはこちら。(PDFです)
Bacula Community Installation Guide
こちらの「5 Ubuntu – Installation with apt」の段落に沿って進めていきます。
Baculaのインストール前に準備することがあります。
Baculaはバックアップ情報の管理にデータベースを使いますが、PostgreSQLがデフォルトで MySQLも使えます。
ここではPostgreSQLで作ります。
後ほど出てきますが、使うデータベースによって導入する Baculaのパッケージが変わりますのでご注意下さい。
2023年5月13日時点のなるべく最新版で、結果的に以下の通りの環境になりました。
- Ubuntu Server 22.04.2
- PostgreSQL 15.3
- Bacula 13.0.2
それでは、早速インストール開始。
Ubuntu Server 22.04のインストールについては以下に書いています。
「Ubuntu Linux Serverをインストール」
「Ubuntu Serverの初期設定」
PostgreSQLのインストールについては「PostgreSQLインストール」に書いています。
PostgreSQLに[postgres]ユーザー(パスワードは[postgres])でログインできる状態からスタートです。
Baculaのパッケージをダウンロードするのに必要な [apt-transport-https]をインストールします。
subro@UbuntuServer2204-2:~$ sudo apt-get install -y apt-transport-https
〜〜〜 省略 〜〜〜
インストールできました。
Baculaの aptリポジトリの GPGキー(出所を証明する)を取得します。
subro@UbuntuServer2204-2:~$ cd /tmp
subro@UbuntuServer2204-2:/tmp$ wget https://www.bacula.org/downloads/Bacula-4096-Distribution-Verification-key.asc
--2023-05-12 12:40:17-- https://www.bacula.org/downloads/Bacula-4096-Distribution-Verification-key.asc
www.bacula.org (www.bacula.org) をDNSに問いあわせています... 94.103.98.87
www.bacula.org (www.bacula.org)|94.103.98.87|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 3148 (3.1K) [text/plain]
‘Bacula-4096-Distribution-Verification-key.asc’ に保存中
Bacula-4096-Distribution-Verification-key.asc 100%[==========================================================================================================>] 3.07K --.-KB/s in 0s
2023-05-12 12:40:18 (29.9 MB/s) - ‘Bacula-4096-Distribution-Verification-key.asc’ へ保存完了 [3148/3148]
subro@UbuntuServer2204-2:/tmp$ sudo apt-key add Bacula-4096-Distribution-Verification-key.asc
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
subro@UbuntuServer2204-2:/tmp$ rm Bacula-4096-Distribution-Verification-key.asc
ダウンロードして登録もできました。
Baculaの aptリポジトリを aptの検索対象に加えます。
以下のファイルを作ります。
[/etc/apt/sources.list.d/Bacula-Community.list]
# Bacula Community
deb [arch=amd64] https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy main
リポジトリデータベースのアップデートをします。
subro@UbuntuServer2204-2:~$ sudo apt update
ヒット:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease
ヒット:4 http://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease
ヒット:5 http://jp.archive.ubuntu.com/ubuntu jammy-security InRelease
無視:6 https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy InRelease
取得:7 https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy Release [1,625 B]
取得:8 https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy Release.gpg [858 B]
取得:9 https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy/main amd64 Packages [4,560 B]
7,043 B を 3秒 で取得しました (2,613 B/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
アップグレードできるパッケージが 4 個あります。表示するには 'apt list --upgradable' を実行してください。
W: https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2/dists/jammy/Release.gpg: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
アップデートできました。
GPGキーの形式が古いって怒られています。
Baculaをインストールします。
subro@UbuntuServer2204-2:~$ sudo apt-get install bacula-postgresql
〜〜〜 省略 〜〜〜
途中で以下のように PostgreSQLのデータベース作成画面になるので、入力していきます。
[はい]を押します。
[localhost]を選択し、[了解]を押します。
PostgreSQLに Bacula用のデータベースアカウントが作られますので、そのパスワードを設定します。
[了解]を押します。
確認のためにもう一度パスワードを入力し、[了解]を押します。
これでパッケージのインストールが進んで、データベースができあがります。
この後「8 Security and Permissions Considerations」に行ってインストールの続きをするように書いてありますが、ここでは ufw(ファイアウォールを)を有効にしていないのでスキップします。
「9 Infrastructure Test」の段落に移ります。
動作試験をします。
(長いですが全部のせます)
subro@UbuntuServer2204-2:~$ sudo -u bacula /opt/bacula/bin/bconsole
Connecting to Director UbuntuServer2204-2:9101
1000 OK: 10002 UbuntuServer2204-2-dir Version: 13.0.2 (18 February 2023)
Enter a period to cancel a command.
*run job=BackupCatalog
Using Catalog "MyCatalog"
Run Backup job
JobName: BackupCatalog
Level: Full
Client: UbuntuServer2204-2-fd
FileSet: Catalog
Pool: File (From Job resource)
Storage: File1 (From Job resource)
When: 2023-05-12 17:27:30
Priority: 11
OK to run? (yes/mod/no): yes
Job queued. JobId=2
You have messages.
*messages
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: shell command: run BeforeJob "/opt/bacula/scripts/make_catalog_backup.pl MyCatalog"
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Start Backup JobId 1, Job=BackupCatalog.2023-05-12_17.26.56_03
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Connected to Storage "File1" at UbuntuServer2204-2:9103 with TLS
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Created new Volume="Vol-0001", Pool="File", MediaType="File1" in catalog.
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Using Device "FileChgr1-Dev1" to write.
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Connected to Client "UbuntuServer2204-2-fd" at UbuntuServer2204-2:9102 with TLS
12- 5月 17:26 UbuntuServer2204-2-fd JobId 1: Connected to Storage at UbuntuServer2204-2:9103 with TLS
12- 5月 17:26 UbuntuServer2204-2-sd JobId 1: Labeled new Volume "Vol-0001" on File device "FileChgr1-Dev1" (/opt/bacula/archive).
12- 5月 17:26 UbuntuServer2204-2-sd JobId 1: Wrote label to prelabeled Volume "Vol-0001" on File device "FileChgr1-Dev1" (/opt/bacula/archive)
12- 5月 17:26 UbuntuServer2204-2-sd JobId 1: Elapsed time=00:00:01, Transfer rate=54.63 K Bytes/second
12- 5月 17:26 UbuntuServer2204-2-sd JobId 1: Sending spooled attrs to the Director. Despooling 224 bytes ...
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Bacula Enterprise UbuntuServer2204-2-dir 13.0.2 (18Feb23):
Build OS: x86_64-pc-linux-gnu-bacula-enterprise ubuntu 22.04
JobId: 1
Job: BackupCatalog.2023-05-12_17.26.56_03
Backup Level: Full
Client: "UbuntuServer2204-2-fd" 13.0.2 (18Feb23) x86_64-pc-linux-gnu-bacula-enterprise,ubuntu,22.04
FileSet: "Catalog" 2023-05-12 17:26:56
Pool: "File" (From Job resource)
Catalog: "MyCatalog" (From Client resource)
Storage: "File1" (From Job resource)
Scheduled time: 12- 5月-2023 17:26:26
Start time: 12- 5月-2023 17:26:59
End time: 12- 5月-2023 17:26:59
Elapsed time: 1 sec
Priority: 11
FD Files Written: 1
SD Files Written: 1
FD Bytes Written: 54,522 (54.52 KB)
SD Bytes Written: 54,638 (54.63 KB)
Rate: 54.5 KB/s
Software Compression: None
Comm Line Compression: 75.8% 4.1:1
Snapshot/VSS: no
Encryption: no
Accurate: no
Volume name(s): Vol-0001
Volume Session Id: 1
Volume Session Time: 1683879377
Last Volume Bytes: 55,337 (55.33 KB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Begin pruning Jobs older than 6 months .
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: No Jobs found to prune.
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: Begin pruning Files.
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: No Files found to prune.
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: End auto prune.
12- 5月 17:26 UbuntuServer2204-2-dir JobId 1: shell command: run AfterJob "/opt/bacula/scripts/delete_catalog_backup"
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: shell command: run BeforeJob "/opt/bacula/scripts/make_catalog_backup.pl MyCatalog"
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Start Backup JobId 2, Job=BackupCatalog.2023-05-12_17.27.36_05
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Connected to Storage "File1" at UbuntuServer2204-2:9103 with TLS
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Using Device "FileChgr1-Dev2" to write.
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Connected to Client "UbuntuServer2204-2-fd" at UbuntuServer2204-2:9102 with TLS
12- 5月 17:27 UbuntuServer2204-2-fd JobId 2: Connected to Storage at UbuntuServer2204-2:9103 with TLS
12- 5月 17:27 UbuntuServer2204-2-sd JobId 2: Volume "Vol-0001" previously written, moving to end of data.
12- 5月 17:27 UbuntuServer2204-2-sd JobId 2: Ready to append to end of Volume "Vol-0001" size=55,337
12- 5月 17:27 UbuntuServer2204-2-sd JobId 2: Elapsed time=00:00:01, Transfer rate=58.75 K Bytes/second
12- 5月 17:27 UbuntuServer2204-2-sd JobId 2: Sending spooled attrs to the Director. Despooling 224 bytes ...
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Bacula Enterprise UbuntuServer2204-2-dir 13.0.2 (18Feb23):
Build OS: x86_64-pc-linux-gnu-bacula-enterprise ubuntu 22.04
JobId: 2
Job: BackupCatalog.2023-05-12_17.27.36_05
Backup Level: Full
Client: "UbuntuServer2204-2-fd" 13.0.2 (18Feb23) x86_64-pc-linux-gnu-bacula-enterprise,ubuntu,22.04
FileSet: "Catalog" 2023-05-12 17:26:56
Pool: "File" (From Job resource)
Catalog: "MyCatalog" (From Client resource)
Storage: "File1" (From Job resource)
Scheduled time: 12- 5月-2023 17:27:30
Start time: 12- 5月-2023 17:27:38
End time: 12- 5月-2023 17:27:39
Elapsed time: 1 sec
Priority: 11
FD Files Written: 1
SD Files Written: 1
FD Bytes Written: 58,636 (58.63 KB)
SD Bytes Written: 58,752 (58.75 KB)
Rate: 58.6 KB/s
Software Compression: None
Comm Line Compression: 74.7% 4.0:1
Snapshot/VSS: no
Encryption: no
Accurate: no
Volume name(s): Vol-0001
Volume Session Id: 2
Volume Session Time: 1683879377
Last Volume Bytes: 114,547 (114.5 KB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Begin pruning Jobs older than 6 months .
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: No Jobs found to prune.
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: Begin pruning Files.
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: No Files found to prune.
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: End auto prune.
12- 5月 17:27 UbuntuServer2204-2-dir JobId 2: shell command: run AfterJob "/opt/bacula/scripts/delete_catalog_backup"
*status dir
UbuntuServer2204-2-dir Version: 13.0.2 (18 February 2023) x86_64-pc-linux-gnu-bacula-enterprise ubuntu 22.04
Daemon started 12- 5月 -2023 17:16, conf reloaded 12- 5月-2023 17:16:17
Jobs: run=2, running=0 mode=0,0
Crypto: fips=N/A crypto=OpenSSL 3.0.2 15 Mar 2022
Heap: heap=946,176 smbytes=382,131 max_bytes=474,377 bufs=443 max_bufs=486
Res: njobs=3 nclients=1 nstores=2 npools=3 ncats=1 nfsets=2 nscheds=2
Scheduled Jobs:
Level Type Pri Scheduled Job Name Volume
===================================================================================
Incremental Backup 10 12- 5月 -2023 23:05 BackupClient1 Vol-0001
Full Backup 11 12- 5月 -2023 23:10 BackupCatalog Vol-0001
====
Running Jobs:
Console connected using TLS at 12- 5月 -2023 17:27
No Jobs running.
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
1 Full 1 54.52 K OK 12- 5月 -2023 17:26 BackupCatalog
2 Full 1 58.63 K OK 12- 5月 -2023 17:27 BackupCatalog
====
*quit
よく分かりませんが、Baculaとして動作している気がします。
[/opt/bacula/bin/bconsole]コマンドは Baculaのコマンドを実行する CUIを提供するプログラムなのでしょう。
何か尻切れなんですが、Baculaのサーバーとしてはこれでインストールはできているようです。
「Baculaで Ubuntu Serverのバックアップ(その2)」に続きます。