使用bacula實現Linux的遠端備份和還原

2021-09-06 22:22:26 字數 2969 閱讀 1058

bacula,被譽為開源軟體中最好的備份還原軟體,它提供了企業級的客戶機/伺服器的備份解決方案,能夠通過網路來管理檔案的備份,恢復和核實工作。bacula,既有windows版本的,也有linux,unix的。但目前有關於其使用的文章是在太少,而且介紹的很不詳細,今天,我就來和大家一起**一下。(最新版本2.4.3主頁[url]

一,bacula的模型

為了部署bacula,應該了解它的主要元件。

控制器是協調備份,恢復和校驗操作的守護程序。使用者可以通過控制台向控制守護程序提交任務。控制台不一定非要和控制守護程序在同一臺機器上,可以分離。

儲存守護程序是用來寫入備份資料或者讀取備份資料的。它必須安裝在提供儲存的機器上。也就是安裝了磁帶機或者要將備份存放的伺服器上。它和控制守護程序可以分離,不一定要安裝在一起。

檔案守護程序安裝在每台需要備份資料的系統上。比如,你想備份網路中的某台檔案伺服器上的資料,那麼,你就應該將檔案守護程序安裝在此台伺服器上。

編目是乙個資料庫,它儲存所有備份的每個檔案和卷的資訊。所以,它需要資料庫軟體的支援,現在bacula支援mysql,postgresql和sqlite。

二,設定

試驗環境如下:有兩台linux主機,

一台主機名為rhel5(以下簡稱server),ip為192.168.0.5,系統為rhel 5.1,角色為備份伺服器兼儲存伺服器(另掛一塊磁碟到/tmp/test/下作為儲存)

另一台主機名為client。ip是192.168.0.6,系統是rhel5.1,角色為需要備份的主機(這裡我們以/boot為要備份還原的目錄)

準備工作:在server上安裝mysql和gcc環境(bacula編譯需要gcc),並啟動mysql

在client上只需安裝gcc環境

配置伺服器server

1, 解壓編譯安裝bacula:

然後是make和make install

預設情況,bacula安裝在/etc/bacula/目錄下

2,建立mysql指令碼

bacula已經為我們建好了指令碼,直接執行就ok,一共3個。如果不執行,後面9101埠是起不來的。

3,修改配置

作為儲存伺服器兼控制台,現在需要依次對bacula-dir.conf(管全域性)bacula.sd.conf(管儲存)和bconsole.conf(管控制台)配置檔案進行修改。

bacula-dir.conf是最複雜的乙個檔案,它一共有10個邏輯段:

director(定義全域性),

catalog(定義日誌),

jobdefs(定義備份的預設值),

job(定義特定操作),

fileset(定義備份哪些區域不備份哪些區域),

schedule(定義備份時間),

pool(定義備份介質),

client(定義要備份的主機),

storage(定義如何儲存)

messages(定義如何處理訊息)

因為此檔案比較複雜,所以我把我配置好的檔案直接貼出來,一些特別重要的地方咱們拿出來討論

director

jobdefs

job

job

job

fileset

file = /boot     # 備份的範圍,這裡我根據需要只備份了/boot分割槽,如果要備份其他可加入相應路徑 }

exclude }

schedule

schedule

fileset

file = /var/bacula/working/bacula.sql }

} client

client

storage

catalog

messages

messages

pool

pool

console

第二個檔案bacula-sd.conf

storage

director

director

device

messages

最後乙個檔案bconsole.conf

director

現在啟動程序

終於配置完畢,但還有關鍵的一步,新增儲存介質

黃色的是要輸入的部分。現在就已經進入到控制台了。

配置客戶機(需要備份的client):

1,編譯安裝bacula

然後make和make install

預設安裝在/etc/bacula/目錄下

1,改配置檔案bacula-fd.conf

director

director

filedaemon

messages

客戶端相對配置較簡單。改這乙個檔案就行了。

然後啟動程序

三,驗證

經過了艱苦的工作,現在到了享受結果的時候了(呵呵,這個東東我已經弄了3天了,痛苦呀)

咱們現在先備份client下的/boot目錄吧

在server上

接著 可以通過status檢視狀態

呵呵,看見ok了嗎,備份成功了喲

接下來咱們來做還原,首先咱們把client上的/boot中的檔案刪除掉

現在回到server上來還原(還是在控制台)

顯示如下提示

接著標記要還原內容,並且執行

這個地方注意一下,如果要還原到client原位置則按以下步驟

現在再回到client下看看

哈哈,看見了吧,剛才刪掉的檔案現在全部回來了

四,最後

因為手頭上沒有現成的資料,加上本人英語水平有限,有不足的地方還請大家諒解。

Bacula(4)簡單配置使用

quick start 安裝完成後自帶的配置檔案其實就可以使用,裡面為我們提供了乙個簡單的備份示例,先來看一下各個配置間的關係。jobdefs 定義了乙個通用的備份任務 job 定義備份任務,並且可以引用jobdefs定義的通用任務 schedule 備份任務的計畫時間表 fileset 備份的檔案...

使用Keepalived實現linux高可用集群

apt install libipset dev keepalived yuseradd s usr sbin nologin m g root keepalived scriptvim etc sysctl.conf 在末尾追加一行 net.ipv4.ip nonlocal bind 1vim e...

linux使用crontab實現PHP執行定時任務

首先說說cron,它是乙個linux下的定時執行工具。根使用者以外的使用者可以使用 crontab 工具來配置 cron 任務。所有使用者定義的 crontab 都被儲存在 var spool cron 目錄中,並使用建立它們的使用者身份來執行。要以某使用者身份建立乙個 crontab 專案,登入為...