在進(jìn)行Linux系統(tǒng)操作的時(shí)候,有時(shí)需要備份Linux系統(tǒng)上的網(wǎng)頁文件,而備份網(wǎng)頁文件一般都使用Git軟件來備份,今天小編就給大家介紹下一款基于Git的軟件—BUP,一起來了解下如何使用BUP備份網(wǎng)頁文件。
BUP 并不單純是Git, 而是一款基于Git 的軟件。 一般情況下, 我使用 rsync 來備份我的文件, 而且迄今為止一直工作的很好。 唯一的不足就是無法把文件恢復(fù)到某個(gè)特定的時(shí)間點(diǎn)。 因此, 我開始尋找替代品, 結(jié)果發(fā)現(xiàn)了 BUP, 一款基于 git 的軟件, 它將數(shù)據(jù)存儲(chǔ)在一個(gè)倉庫中, 并且有將數(shù)據(jù)恢復(fù)到特定時(shí)間點(diǎn)的選項(xiàng)。
要使用 BUP, 你先要初始化一個(gè)空的倉庫, 然后備份所有文件。 當(dāng) BUP 完成一次備份是, 它會(huì)創(chuàng)建一個(gè)還原點(diǎn), 你可以過后還原到這里。 它還會(huì)創(chuàng)建所有文件的索引, 包括文件的屬性和驗(yàn)校和。 當(dāng)要進(jìn)行下一個(gè)備份時(shí), BUP 會(huì)對比文件的屬性和驗(yàn)校和, 只保存發(fā)生變化的數(shù)據(jù)。 這樣可以節(jié)省很多空間。
安裝 BUP (在 Centos 6 7 上測試通過)
首先確保你已經(jīng)安裝了 RPMFORGE 和 EPEL 倉庫
?。踭echarena51@vps ~]$ sudo yum groupinstall “Development Tools”[techarena51@vps ~]$ sudo yum install python python-devel[techarena51@vps ~]$ sudo yum install fuse-python pyxattr pylibacl[techarena51@vps ~]$ sudo yum install perl-Time-HiRes[techarena51@vps ~]$ git clone git://github.com/bup/bup[techarena51@vps ~]$ cd bup[techarena51@vps ~]$ make[techarena51@vps ~]$ make test[techarena51@vps ~]$ sudo make install
在 CentOS 7 上, 當(dāng)你運(yùn)行 “make test” 時(shí)可能會(huì)出錯(cuò), 但你可以繼續(xù)運(yùn)行 “make install”。
第一步時(shí)初始化一個(gè)空的倉庫, 就像 git 一樣。
?。踭echarena51@vps ~]$ bup init
默認(rèn)情況下, bup 會(huì)把倉庫存儲(chǔ)在 “~/.bup” 中, 但你可以通過設(shè)置環(huán)境變量 “export BUP_DIR=/mnt/user/bup” 來改變設(shè)置。
然后, 創(chuàng)建所有文件的索引。 這個(gè)索引, 就像之前講過的那樣, 存儲(chǔ)了一系列文件和它們的屬性及 git 目標(biāo) id (sha1 哈希表)。 (屬性包括了軟鏈接, 權(quán)限和不可改變字節(jié))
bup index /path/to/filebup save -n nameofbackup /path/to/file#Example[techarena51@vps ~]$ bup index /var/www/htmlIndexing: 7973, done (4398 paths/s).bup: merging indexes (7980/7980), done.[techarena51@vps ~]$ bup save -n techarena51 /var/www/htmlReading index: 28, done.Saving: 100.00% (4/4k, 28/28 files), done.bloom: adding 1 file (7 objects).Receiving index from server: 1268/1268, done.bloom: adding 1 file (7 objects)。
“BUP save” 會(huì)把所有內(nèi)容分塊, 然后把它們作為對象儲(chǔ)存。 “-n” 選項(xiàng)指定備份名。
你可以查看備份列表和已備份文件。
?。踭echarena51@vps ~]$ bup lslocal-etc techarena51 test#Check for a list of backups available for my site[techarena51@vps ~]$ bup ls techarena512014-09-24-064416 2014-09-24-071814 latest#Check for the files available in these backups[techarena51@vps ~]$ bup ls techarena51/2014-09-24-064416/var/www/htmlapc.php techarena51.com wp-config-sample.php wp-load.php
在同一個(gè)服務(wù)器上備份文件從來不是一個(gè)好的選擇。 BUP 允許你遠(yuǎn)程備份網(wǎng)頁文件, 但你必須保證你的 SSH 密鑰和 BUP 都已經(jīng)安裝在遠(yuǎn)程服務(wù)器上。
bup index path/to/dirbup save-r remote-vps.com -n backupname path/to/dir
例子: 備份 “/var/www/html” 文件夾
?。踭echarena51@vps ~]$bup index /var/www/html[techarena51@vps ~]$ bup save -r user@remotelinuxvps.com: -n techarena51 /var/www/htmlReading index: 28, done.Saving: 100.00% (4/4k, 28/28 files), done.bloom: adding 1 file (7 objects).Receiving index from server: 1268/1268, done.bloom: adding 1 file (7 objects)。
恢復(fù)備份
登入遠(yuǎn)程服務(wù)器并輸入下面的命令
?。踭echarena51@vps ~]$bup restore -C 。/backup techarena51/latest#Restore an older version of the entire working dir elsewhere[techarena51@vps ~]$bup restore -C /tmp/bup-out /testrepo/2013-09-29-195827#Restore one individual file from an old backup[techarena51@vps ~]$bup restore -C /tmp/bup-out /testrepo/2013-09-29-201328/root/testbup/binfile1.bin
唯一的缺點(diǎn)是你不能把文件恢復(fù)到另一個(gè)服務(wù)器, 你必須通過 SCP 或者 rsync 手動(dòng)復(fù)制文件。
通過集成的 web 服務(wù)器查看備份。
bup web#specific portbup web :8181
你可以使用 shell 腳本來運(yùn)行 bup, 并建立一個(gè)每日運(yùn)行的定時(shí)任務(wù)。
#!/bin/bashbup index /var/www/html bup save -r user@remote-vps.com: -n techarena51 /var/www/html
上面就是使用BUP軟件備份Linux系統(tǒng)上的網(wǎng)頁文件的過程介紹了,該軟件還存在一些不足的地方,不過已經(jīng)能夠滿足基本需求了,不妨試試看吧。