溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中如何使用rdiff-backup

發(fā)布時(shí)間:2021-10-27 13:51:19 來(lái)源:億速云 閱讀:282 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹了linux中如何使用rdiff-backup,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

rdiff-backup 是一個(gè)用于本地/遠(yuǎn)程增量備份的強(qiáng)大而易用的 Python 腳本,它適用于任何 POSIX 操作系統(tǒng),如Linux、Mac OS  X 或 Cygwin。它集合了鏡像和增量備份的顯著特性。

值得注意的是,它保留了子目錄、dev 文件、硬鏈接,以及關(guān)鍵的文件屬性,如權(quán)限、uid/gid 所有權(quán)、修改時(shí)間、擴(kuò)展屬性、acl 以及 resource  fork。它可以通過(guò)管道以高效帶寬的模式工作,這與流行的 rsync 備份工具類似。

rdiff-backup 通過(guò)使用 SSH  將單個(gè)目錄備份到另一個(gè)目錄,這意味著數(shù)據(jù)傳輸被加密并且是安全的。目標(biāo)目錄(在遠(yuǎn)程系統(tǒng)上)最終會(huì)得到源目錄的完整副本,但是此外的反向差異會(huì)存儲(chǔ)在目標(biāo)目錄的特殊子目錄中,從而可以恢復(fù)前一段時(shí)間丟失的文件。

依賴

要在 Linux 中使用 rdiff-backup,你需要在系統(tǒng)上安裝以下軟件包:

  • Python v2.2 或更高版本

  • librsync v0.9.7 或更高版本

  • pylibacl 和 pyxattr Python 模塊是可選的,但它們分別是 POSIX 訪問(wèn)控制列表(ACL)和擴(kuò)展屬性支持必需的。

  • rdiff-backup-statistics 需要 Python v2.4 或更高版本。

如何在 Linux 中安裝 rdiff-backup

重要:如果你通過(guò)網(wǎng)絡(luò)運(yùn)行它,則必須在兩個(gè)系統(tǒng)中都安裝 rdiff-backup,兩者***是相同版本。

該腳本已經(jīng)存在于主流 Linux 發(fā)行版的官方倉(cāng)庫(kù)中,只需運(yùn)行以下命令來(lái)安裝 rdiff-backup 及其依賴關(guān)系:

在 Debian/Ubuntu 中

$ sudo apt-get update $ sudo apt-get install librsync-dev rdiff-backup

在 CentOS/RHEL 7 中

# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm # rpm -ivh epel-release-7-9.noarch.rpm # yum install librsync rdiff-backup

在 CentOS/RHEL 6 中

# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm # yum install librsync rdiff-backup

在 Fedora 中

# yum install librsync rdiff-backup # dnf install librsync rdiff-backup [Fedora 22+]

如何在 Linux 中使用 rdiff-backup

如前所述,rdiff-backup 使用 SSH 連接到網(wǎng)絡(luò)上的遠(yuǎn)程計(jì)算機(jī),SSH 的默認(rèn)身份驗(yàn)證方式是用戶名/密碼,這通常需要人工交互。

但是,要自動(dòng)執(zhí)行諸如腳本等自動(dòng)備份之類的任務(wù),那么你需要配置使用 SSH 密鑰無(wú)密碼登錄 SSH,因?yàn)?SSH 密鑰增加了兩臺(tái)  Linux服務(wù)器之間的信任來(lái)簡(jiǎn)化文件同步或傳輸。

在你設(shè)置了 SSH 無(wú)密碼登錄后,你可以使用下面的例子開(kāi)始使用該腳本。

備份文件到不同分區(qū)

下面的例子會(huì)備份 /etc 文件夾到另外一個(gè)分區(qū)的 Backup 文件夾內(nèi):

$ sudo rdiff-backup /etc /media/aaronkilik/Data/Backup/mint_etc.backup

linux中如何使用rdiff-backup

備份文件到不同分區(qū)

要排除一個(gè)特定文件夾和它的子目錄,你可以如下使用 --exclude 選項(xiàng):

$ sudo rdiff-backup --exclude /etc/cockpit --exclude /etc/bluetooth /media/aaronkilik/Data/Backup/mint_etc.backup

我們可以如下使用 --include-special-files 包含所有的設(shè)備文件、fifo 文件、socket 文件和鏈接文件:

$ sudo rdiff-backup --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup

還有另外兩個(gè)重要標(biāo)志來(lái)用于選擇文件,--max-file-size 用來(lái)排除大于給定字節(jié)大小的文件,--min-file-size  用于排除小于給定字節(jié)大小的文件:

$ sudo rdiff-backup --max-file-size 5M --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup

在本地 Linux 服務(wù)器上備份遠(yuǎn)程文件

要這么做,我們使用:

Remote Server (tecmint)         : 192.168.56.102  Local Backup Server (backup)    : 192.168.56.10

如前所述,你必須在兩臺(tái)機(jī)器上安裝相同版本的 rdiff-backup,如下所示,請(qǐng)嘗試在兩臺(tái)機(jī)器上檢查版本:

$ rdiff-backup -V

linux中如何使用rdiff-backup

檢查服務(wù)器中 rdiff 版本

在備份服務(wù)器中,像這樣創(chuàng)建一個(gè)存儲(chǔ)備份文件的目錄:

# mkdir -p /backups

現(xiàn)在在備份服務(wù)器中,運(yùn)行下面的命令來(lái)將遠(yuǎn)程 Linux 服務(wù)器 192.168.56.102 中的 /var/log/ 和 /root 備份到  /backups 中:

# rdiff-backup root@192.168.56.102::/var/log/ /backups/192.168.56.102_logs.backup # rdiff-backup root@192.168.56.102::/root/ /backups/192.168.56.102_rootfiles.backup

下面的截圖展示了遠(yuǎn)程服務(wù)器 192.168.56.102 中的 root 文件夾以及 192.168.56.10 備份服務(wù)器中的已備份文件:

linux中如何使用rdiff-backup

在本地服務(wù)器備份遠(yuǎn)程目錄

注意截圖中 “backup” 目錄中創(chuàng)建的 rdiff-backup-data 文件夾,它包含了備份過(guò)程和增量文件的重要數(shù)據(jù)。

linux中如何使用rdiff-backup

rdiff-backup – 備份過(guò)程文件

現(xiàn)在,在 192.168.56.102 服務(wù)器中,如下所示 root 目錄已經(jīng)添加了額外的文件:

linux中如何使用rdiff-backup

驗(yàn)證備份目錄

讓我們?cè)俅芜\(yùn)行備份命令以獲取更改的數(shù)據(jù),我們可以使用 -v[0-9](其中數(shù)字指定詳細(xì)程度級(jí)別,默認(rèn)值為 3,這是靜默模式)選項(xiàng)設(shè)置詳細(xì)功能:

# rdiff-backup -v4 root@192.168.56.102::/root/ /backups/192.168.56.102_rootfiles.backup

linux中如何使用rdiff-backup

帶有摘要的增量備份

要列出 /backups/192.168.56.102_rootfiles.backup 目錄中包含的部分增量備份的數(shù)量和日期,我們可以運(yùn)行:

# rdiff-backup -l /backups/192.168.56.102_rootfiles.backup/

使用 cron 自動(dòng)進(jìn)行 rdiff-back 備份

使用 --print-statistics 成功備份后,我們可以打印摘要統(tǒng)計(jì)信息。但是,如果我們不設(shè)置此選項(xiàng),我們可以仍從會(huì)話統(tǒng)計(jì)中獲得。在手冊(cè)頁(yè)的  “STATISTICS” 部分中閱讀有關(guān)此選項(xiàng)的更多信息。

-remote-schema 選項(xiàng)使我們能夠指定使用替代方法連接到遠(yuǎn)程計(jì)算機(jī)。

現(xiàn)在,我們開(kāi)始在備份服務(wù)器 192.168.56.10 上創(chuàng)建一個(gè) backup.sh 腳本,如下所示:

# cd ~/bin # vi backup.sh

添加下面的行到腳本中。

#!/bin/bash #This is a rdiff-backup utility backup script #Backup command rdiff-backup --print-statistics --remote-schema 'ssh -C %s "sudo /usr/bin/rdiff-backup --server --restrict-read-only  /"'  root@192.168.56.102::/var/logs  /backups/192.168.56.102_logs.back #Checking rdiff-backup command success/error status=$? if [ $status != 0 ]; then #append error message in ~/backup.log file echo "rdiff-backup exit Code: $status - Command Unsuccessful" >>~/backup.log; exit 1; fi #Remove incremental backup files older than one month rdiff-backup --force --remove-older-than 1M /backups/192.168.56.102_logs.back

保存文件并退出,接著運(yùn)行下面的命令在服務(wù)器 192.168.56.10 上的 crontab 中添加此腳本:

# crontab -e

添加此行在每天午夜運(yùn)行你的備份腳本:

0   0  *  *  * /root/bin/backup.sh > /dev/null 2>&1

保存 crontab 并退出,現(xiàn)在我們已經(jīng)成功自動(dòng)化了備份過(guò)程。確保一切如希望那樣工作。

閱讀 rdiff-backup 的手冊(cè)頁(yè)獲取更多信息、詳盡的使用選項(xiàng)以及示例:

# man rdiff-backup

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“l(fā)inux中如何使用rdiff-backup”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI