天天看點

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

小心謹慎或災難體驗會讓每一個系統管理都認識到頻繁的系統備份的重要性。你可以通過編寫管用的舊式 shell 腳本,或使用一個(或幾個)适合這項工作的備份工具來完成備份任務。是以,當你要實施一個備份解決方案時,你了解的備份工具越多,你做出的決策就會越明智。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

如果非要說的話,backupninja 的缺點是:為了充分使用其所有的功能,它要求安裝一些其他“助手”程式。盡管 backupninja 有針對基于 red hat(紅帽)的發行版本的 rpm 安裝包,但 backupninja 針對 debian 及其衍生發行版本的依賴進行了優化。是以不建議在基于 red hat 的系統上嘗試 backupninja 。

在這篇教程中,我們将介紹如何在基于 debian 的發行版本上安裝 backupninja 。

<a target="_blank"></a>

以 root 賬戶來運作下面的指令:

<code># aptitude install backupninja</code>

在安裝的過程中,有幾個檔案和目錄将被建立:

/usr/sbin/backupninja 是個 bash shell 的主腳本;

/etc/cron.d/backupninja, 預設情況下,設定 cron 任務來每隔一個小時運作上面的主腳本;

/etc/logrotate.d/backupninja 截斷由 backupninja 程式産生的日志;

/etc/backup.d/ 是備份操作的配置檔案駐留的目錄;

/etc/backupninja.conf 是包含一般選項的主配置檔案。這個檔案帶有良好的注釋且詳細解釋了每個選項的含義;

/usr/share/backupninja 是那些 backupninja 所使用的腳本所處的目錄。這些腳本檔案負責執行實際的工作。在這個目錄中,你還可以找到 <code>.helper</code> 檔案,它們可以被用來配置和設定 ninjahelper 的菜單;

/usr/share/doc/backupninja/examples 含有操作配置檔案(即通過 ninjahelper 産生的檔案)的模闆。

當我們嘗試啟動 ninjahelper 時,我們可以看到可能需要一個内部依賴程式。假如系統進行了提示,請輸入 “yes” 并敲下Enter鍵來安裝 dialog(一個用于從 shell 腳本中顯示友好對話框的工具)。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

當你在鍵入 yes 後再敲Enter鍵時,backupninja 将會安裝 dialog,一旦安裝完成,将呈現出下面的截屏:

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

在啟動了 ninjahelper 之後,我們将建立一個新的備份操作:

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

如果必要的助手程式沒有被安裝,下面的截屏将會呈現在我們眼前。假如這些軟體包已經在你的系統上安裝了,請跳過這一步。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

接下來的一步需要你選取相關條目來作為此次備份任務的一部分。前四個條目已經預設被選上了,但你可以通過在條目上按空格鍵來撤消選擇。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

一旦你完成了上面的步驟,按 ok 選項來繼續。接着你将能夠選擇是願意使用預設的配置檔案(/etc/backup.d/10.sys)來完成這次備份操作,還是建立一個新的配置檔案。若為後者,一個含有與預設配置檔案内容相同的檔案将會在相同的目錄下被建立,但它被命名為 11.sys,後續的備份操作将會建立類似的檔案(注:隻不過命名的序号不同)。需要說明的是一旦這個新的配置檔案被建立,你便可以使用你喜愛的文本編輯器來編輯該檔案。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

正如你最有可能知道的那樣, rsync 被廣泛地用于通過網絡同步檔案或檔案夾。在接下來的例子中,我們将讨論一個使用硬連結來為一個遠端目錄做增量式拉取備份的方法,它被用來儲存曆史資料以及在我們本地的檔案伺服器中恢複這些曆史資料。這個方法将幫助我們節省空間并增強位于伺服器端的安全性。

步驟 1:編寫一個帶有如下内容的自定義腳本,放在 <code>/etc/backup.d</code>,并将它的權限設定為 600 。需要說明的是,除了一般的配置檔案,這個目錄可能還包含當 backupninja 執行時你想運作的一些腳本檔案,它們可以發揮出位于主配置檔案中的變量的優勢。

<code># remote user</code>

<code>user=root</code>

<code># remote host</code>

<code>host=dev1</code>

<code># remote directory</code>

<code>remotedir=/home/gacanepa/</code>

<code># local directory</code>

<code>localdir=/home/gacanepa/backup.0</code>

<code># local directory where previous backup was stored</code>

<code>localdirold=/home/gacanepa/backup.1</code>

<code>mv $localdir $localdirold</code>

<code># rsync</code>

<code>rsync -av --delete --recursive --link-dest=$localdirold $user@$host:$remotedir $localdir</code>

在上面的配置中, rsync 的 ‘--link-dest’ 選項的作用是為位于 $localdir-old 目錄中那些沒有改變的檔案(包含所有屬性) 硬連結到目标目錄($localdir)。

步驟 2:在 backupninja 第一次運作之前,上層目錄(這個例子中指的是 /home/gacanepa) 是空的。第一次我們執行下面的指令:

<code># backupninja -n</code>

backup.0 目錄就被建立了,并在接下來的過程中,它的名稱将會被更改為 backup.1。

當我們第二次運作 backupninja 時, backup.0 将會被重新建立,而 backup.1 保持不動。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

步驟 3: 確定 backup.1 裡面的檔案硬連結到 backup.0 裡的檔案,我們可以通過比較檔案的 inode(i 節點)數和目錄的大小來達到此目的。

如何使用 backupninja 來備份 Debian 系統如何使用 backupninja 來備份 Debian 系統

backupninja 不僅是一個經典的備份工具,它也是一個易于配置的實用程式。你可以通過編寫你自己的控制腳本,用放在 <code>/etc.backup.d</code> 中的不同的配置檔案來運作 backupninja 。甚至你還可以為 ninjahelper 編寫助手程式,并将其包括在 ninjahelper 的主界面上。

例如,假如你在 <code>/usr/share/backupninja</code>目錄中建立了一個名為 xmodulo 的控制腳本,它将自動運作那些位于 <code>/etc/backup.d</code> 目錄中以 .xmodulo 為字尾的每個檔案。如果你決定添加你的 xmodulo 控制腳本到 ninjahelper 中, 你可以編寫相應的助手程式,即 xmodulo.helper 。另外,假如你想 讓 backupninja 運作其它的腳本,隻需把它添加到 <code>/etc/backup.d</code> 目錄中就可以了。

歡迎使用下面的評論框來留下你的評論、問題或建議。聽到你的回應将會使我們很高興。

----------------------------------------------------------------------------------------------------------------------------

繼續閱讀