




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章緒論1.1研究背景和意義1.1.1數(shù)據(jù)備份系統(tǒng)軟件的背景分析隨著計(jì)算機(jī)和網(wǎng)絡(luò)的快速發(fā)展,信息數(shù)據(jù)已經(jīng)呈現(xiàn)指數(shù)增漲,科技的發(fā)達(dá)使得網(wǎng)絡(luò)普及到社會(huì)的各個(gè)角落,讓我們?cè)谏詈凸ぷ髯兊酶臃奖憧旖?,而?shù)據(jù)信息作為網(wǎng)絡(luò)中的傳輸媒介,更是成為人們生活中不可缺少的一部分,更因?yàn)槿绱藬?shù)據(jù)的安全也變得尤為重要。數(shù)據(jù)信息系統(tǒng)作為網(wǎng)絡(luò)中的一種應(yīng)用軟件,已經(jīng)成各企業(yè)和單位的工作基礎(chǔ)?,F(xiàn)如今,在這個(gè)信息化的社會(huì),計(jì)算機(jī)信息系統(tǒng)和和計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)已經(jīng)滲透到各大行業(yè)里,大量傳輸?shù)臄?shù)據(jù)信息和海量的數(shù)據(jù)庫(kù)是有關(guān)政府、金融、保險(xiǎn)等等的命脈,隨著數(shù)據(jù)量不斷的增長(zhǎng),其存在的價(jià)值遠(yuǎn)遠(yuǎn)大于寄存數(shù)據(jù)設(shè)備的價(jià)值,也因此變得越來(lái)越受重視和保護(hù)。然而,隨著科技應(yīng)用的普及,計(jì)算機(jī)故障、人為的誤操作、病毒和黑客入侵,甚至天災(zāi)等等因素?zé)o時(shí)不刻的存在著威脅數(shù)據(jù)信息的安全。而不管是個(gè)人還是企業(yè)中的數(shù)據(jù),都存在著一定的丟失或者損壞的風(fēng)險(xiǎn)性,當(dāng)發(fā)生數(shù)據(jù)丟失或者被損壞的時(shí)候,都將對(duì)個(gè)人或者企業(yè)造成巨大的損失。根據(jù)2004年美國(guó)CPR公司對(duì)6000例數(shù)據(jù)安全事件的統(tǒng)計(jì),對(duì)引起丟失數(shù)據(jù)的事件作了比例分析[1],如圖1-1所示:圖1-1數(shù)據(jù)丟失因素比例圖根據(jù)互聯(lián)網(wǎng)數(shù)據(jù)中心(InternetDataCenter,簡(jiǎn)稱(chēng)IDC)對(duì)美國(guó)發(fā)生過(guò)數(shù)據(jù)丟失的公司進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn)[2],在2001年美國(guó)突發(fā)的911事件中,美國(guó)國(guó)防部受到襲擊導(dǎo)致網(wǎng)絡(luò)系統(tǒng)直接受到破壞,數(shù)小時(shí)后他們的數(shù)據(jù)備份技術(shù)使得網(wǎng)絡(luò)得以恢復(fù)正常運(yùn)行;而兩座世界貿(mào)易大廈中只有43%的機(jī)構(gòu)能恢復(fù)營(yíng)業(yè),大部分由于沒(méi)用做數(shù)據(jù)備份系統(tǒng)的措施,數(shù)據(jù)遭受到永久性的破壞,以至于數(shù)據(jù)恢復(fù)不了,導(dǎo)致破產(chǎn)。同樣的國(guó)內(nèi)也有類(lèi)似的事件,2002年深圳交易所事件、2002年首都機(jī)場(chǎng)離港事件、2011年鄭商所服務(wù)器故障事件等等[1]。1.1.2本課題的研究意義國(guó)內(nèi)外市場(chǎng)上Linux系統(tǒng)下的數(shù)據(jù)備份軟件價(jià)格昂貴,在功能上還不能滿足企業(yè)中特殊的需求,從而導(dǎo)致資源的浪費(fèi)。雖然Linux系統(tǒng)內(nèi)置插件也有輔助備份數(shù)據(jù)的功能,但是對(duì)于企業(yè)中數(shù)據(jù)龐大的數(shù)據(jù)庫(kù)等資料的備份,還是有些欠缺的,不能做到定時(shí)、定量、定位等復(fù)雜的備份方法。對(duì)此,數(shù)據(jù)備份系統(tǒng)的研究對(duì)企業(yè)的數(shù)據(jù)安全起到至關(guān)重要的作用。1.2文獻(xiàn)綜述1.2.1國(guó)內(nèi)研究在國(guó)內(nèi)有一些科研單位和大學(xué)也已經(jīng)對(duì)網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)的技術(shù)進(jìn)行研究,也取得不錯(cuò)的進(jìn)展,如華中科技大學(xué)成立了信息數(shù)據(jù)存儲(chǔ)系統(tǒng)實(shí)驗(yàn)室,清華大學(xué)成立大數(shù)據(jù)研究中心。同樣的,國(guó)內(nèi)一些企業(yè)也研發(fā)出自己的數(shù)據(jù)備份軟件,市面上已存在的備份也種類(lèi)多樣,如愛(ài)數(shù)備份軟件、備特佳容災(zāi)系統(tǒng)、DSG和CDP等等。比如愛(ài)數(shù)企業(yè),它作為國(guó)內(nèi)發(fā)展最快的數(shù)據(jù)備份企業(yè),有純軟傳統(tǒng)備份產(chǎn)品、容災(zāi)網(wǎng)管(不帶存儲(chǔ)的VX一體機(jī))等多種系列的備份軟件產(chǎn)品。愛(ài)數(shù)能夠?qū)崿F(xiàn)備份系統(tǒng)、數(shù)據(jù)庫(kù)、文件等一系列重要數(shù)據(jù),是基于文件復(fù)制技術(shù)實(shí)現(xiàn)的數(shù)據(jù)備份,是一款專(zhuān)業(yè)性較強(qiáng)的備份軟件,可通過(guò)指定時(shí)間恢復(fù)任意時(shí)間點(diǎn)的數(shù)據(jù)資料。1.2.2國(guó)外研究在國(guó)外,各個(gè)發(fā)達(dá)國(guó)家對(duì)于網(wǎng)絡(luò)數(shù)據(jù)備份技術(shù)的研究一直非常重視,并且在備份軟件行業(yè)里處于較為領(lǐng)先的位置,同時(shí)也都自主研發(fā)出了非常成熟的數(shù)據(jù)備份產(chǎn)品,像惠普、美國(guó)CA公司以及Veritas公司都生產(chǎn)了對(duì)網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)備份軟件,其中較好的功能有數(shù)據(jù)庫(kù)管理,定時(shí)管理及介質(zhì)管理等。比如Veritas公司推出的備份軟件,其特點(diǎn)可以適用于任何規(guī)模的環(huán)境、可同時(shí)兼顧主服務(wù)器和介質(zhì)服務(wù)器及操作簡(jiǎn)單等特點(diǎn)。1.3課題研究方法和內(nèi)容1.3.1研究方法本設(shè)計(jì)根據(jù)文獻(xiàn)及網(wǎng)上相關(guān)資料,收集Linux系統(tǒng)下數(shù)據(jù)備份系統(tǒng)設(shè)計(jì)的相關(guān)資料,把系統(tǒng)的主要功能模塊分為四大模塊,分別為:數(shù)據(jù)庫(kù)處理模塊、遠(yuǎn)程登陸模塊、信息入庫(kù)模塊以及數(shù)據(jù)采集備份模塊。根據(jù)收集到的數(shù)據(jù)資料,采用C++來(lái)編寫(xiě)改備份系統(tǒng),并使用開(kāi)源的Linux系統(tǒng)作為系統(tǒng)運(yùn)行的開(kāi)發(fā)環(huán)境,還采用了postgre數(shù)據(jù)庫(kù)作為數(shù)據(jù)載體,記錄保存數(shù)據(jù)。查看手冊(cè)等相關(guān)資料,數(shù)據(jù)傳輸?shù)姆绞街饕抢肍TP/IP協(xié)議進(jìn)行傳輸?shù)?;采用B/S架構(gòu)的系統(tǒng),設(shè)計(jì)系統(tǒng)業(yè)務(wù)流程,確定業(yè)務(wù)備份邏輯關(guān)系。根據(jù)所查閱的資料,對(duì)開(kāi)發(fā)環(huán)境進(jìn)行搭建,使用C++語(yǔ)言進(jìn)行系統(tǒng)開(kāi)發(fā)、資料歸檔并將開(kāi)發(fā)過(guò)程中得出的數(shù)據(jù)進(jìn)行審核分析。對(duì)整體系統(tǒng)功能和性能進(jìn)行測(cè)試,根據(jù)測(cè)試結(jié)果對(duì)不完善的模塊進(jìn)行修復(fù)和優(yōu)化。1.3.2研究?jī)?nèi)容本論文一共分為五個(gè)部分,具體內(nèi)容安排如下:第一章:緒論。主要說(shuō)明該論文是圍繞Linux系統(tǒng)下數(shù)據(jù)備份系統(tǒng)軟件進(jìn)行開(kāi)發(fā),以及備份系統(tǒng)軟件在國(guó)內(nèi)外的研究情況和研究背景和意義。第二章:數(shù)據(jù)備份系統(tǒng)的原理及結(jié)構(gòu)特點(diǎn)。詳細(xì)說(shuō)明數(shù)據(jù)備份系統(tǒng)的工作原理;再?gòu)臄?shù)據(jù)備份系統(tǒng)的功能模塊進(jìn)行著個(gè)分析,主要概況了遠(yuǎn)程文件備份系統(tǒng)的基本原理、備份協(xié)議與技術(shù)。第三章:系統(tǒng)需求分析。根據(jù)企業(yè)需進(jìn)行備份的文件數(shù)據(jù)類(lèi)型和業(yè)務(wù)需求進(jìn)行分析,包括系統(tǒng)結(jié)構(gòu)分析、系統(tǒng)功能分析和系統(tǒng)性能分析。第四章:數(shù)據(jù)備份系統(tǒng)的設(shè)計(jì)。根據(jù)需求對(duì)系統(tǒng)架構(gòu)、業(yè)務(wù)流程、系統(tǒng)功能模塊進(jìn)行詳細(xì)的設(shè)計(jì),并且設(shè)計(jì)系統(tǒng)需要運(yùn)用到的數(shù)據(jù)庫(kù)。第五章:系統(tǒng)功能的實(shí)現(xiàn)與測(cè)試。根據(jù)設(shè)計(jì)進(jìn)行環(huán)境搭建和系統(tǒng)開(kāi)發(fā),介紹主要的開(kāi)發(fā)過(guò)程和功能模塊的實(shí)現(xiàn),并對(duì)系統(tǒng)的功能測(cè)試和分析。第六章:總結(jié)。對(duì)論文的研究工作進(jìn)行總結(jié)。第2章數(shù)據(jù)備份系統(tǒng)的原理及結(jié)構(gòu)特點(diǎn)隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)量也與日俱增,人們對(duì)數(shù)據(jù)的安全的重視也越來(lái)越高[3]。因此,研究數(shù)據(jù)備份技術(shù)和開(kāi)發(fā)遠(yuǎn)程備份數(shù)據(jù)軟件,是一個(gè)將重要的數(shù)據(jù)保護(hù)起來(lái)的重要措施,能夠給企業(yè)數(shù)據(jù)安全起到積極的作用。數(shù)據(jù)備份是一種保護(hù)數(shù)據(jù)的防范方案,可以提高信息數(shù)據(jù)的安全性,防止數(shù)據(jù)意外丟失而進(jìn)行規(guī)律性的運(yùn)作。2.1數(shù)據(jù)備份系統(tǒng)原理與概念數(shù)據(jù)備份系統(tǒng)實(shí)現(xiàn)的技術(shù)簡(jiǎn)單來(lái)看,就是將需要保護(hù)的文件進(jìn)行多次拷貝復(fù)制,并將多個(gè)地方保存文件,已到達(dá)保護(hù)數(shù)據(jù)、數(shù)據(jù)備份的效果。而在日常生活中,數(shù)據(jù)備份無(wú)處不在,如照片的上傳到云備份、將數(shù)據(jù)拷貝到U盤(pán)等等。按照不同分類(lèi)標(biāo)準(zhǔn)可以分為多種類(lèi)型,以下對(duì)數(shù)據(jù)備份的種類(lèi)進(jìn)行簡(jiǎn)要的介紹。數(shù)據(jù)備份系統(tǒng),又稱(chēng)容災(zāi)系統(tǒng)。其功能就是利用拷貝復(fù)制的技術(shù),對(duì)數(shù)據(jù)進(jìn)行多次備份,確保在發(fā)生災(zāi)害時(shí)有應(yīng)急的手段,可以在短時(shí)間內(nèi)將原有的數(shù)據(jù)恢復(fù),以維持社會(huì)或者企業(yè)的正常運(yùn)行。數(shù)據(jù)備份的種類(lèi)繁多,例如:按數(shù)據(jù)量的大小可以分為增量備份和差分備份、按數(shù)據(jù)的存放的物理空間可以分為按是否自動(dòng)備份分為手工備份和自動(dòng)備份、本地備份和異地備份、按數(shù)據(jù)存放介質(zhì)的不同可以分為磁盤(pán)備份和磁帶備份等等。2.2數(shù)據(jù)備份協(xié)議與技術(shù)人們對(duì)數(shù)據(jù)備份技術(shù)的研究已經(jīng)有了相當(dāng)長(zhǎng)的時(shí)間,也積累了很多資料和信息;在已知的信息中得知,備份系統(tǒng)的數(shù)據(jù)傳輸數(shù)據(jù)主要是通過(guò)FTP協(xié)議、共享資源等方式,備份技術(shù)是在整個(gè)數(shù)據(jù)存儲(chǔ)備份過(guò)程中具有相當(dāng)大的作用,備份技術(shù)是通過(guò)遠(yuǎn)程、異地的對(duì)文件進(jìn)行復(fù)制的技術(shù),將數(shù)據(jù)同步或者異步的方式存儲(chǔ)到本地或者異地的存儲(chǔ)空間,而實(shí)現(xiàn)這種方式有三種,一種是利用存儲(chǔ)介質(zhì)自身備份恢復(fù)功能;另一種是利用已有的數(shù)據(jù)庫(kù)產(chǎn)品的數(shù)據(jù)遷移功能;還有一種就是利用主機(jī)遠(yuǎn)程復(fù)制的軟件。2.3.1FTP文件傳輸協(xié)議FTP(即文件傳輸協(xié)議)是TCP/IP協(xié)議組中的協(xié)議之一。FTP協(xié)議由兩個(gè)部分組成,一部分是FTP服務(wù)端,另一部分是FTP客戶端[4]。其中的服務(wù)端是用來(lái)控制數(shù)據(jù)的傳輸,而客服端是給用戶提供接收數(shù)據(jù)的接口,通過(guò)調(diào)用接口以實(shí)現(xiàn)數(shù)據(jù)傳輸交換的目的[4]。FTP支持兩種工作方式,一種是PORT方式,又稱(chēng)為Active模式,意思就是主動(dòng)模式;另一種是PASV方式,又稱(chēng)為Passive模式,意思就是被動(dòng)模式。客戶端通過(guò)發(fā)送PORT命令或者PASV命令來(lái)控制FTP采用主動(dòng)或者被動(dòng)的方式傳輸數(shù)據(jù)。FTP的傳輸模式主要分為ASCII傳輸模式和二進(jìn)制傳輸模式。當(dāng)兩臺(tái)操作系統(tǒng)不同的服務(wù)器進(jìn)行數(shù)據(jù)傳輸,F(xiàn)TP協(xié)議會(huì)通過(guò)ASCII模式將文本內(nèi)容的格式進(jìn)行轉(zhuǎn)換,以便于數(shù)據(jù)到另一臺(tái)設(shè)備時(shí)不回出現(xiàn)亂碼的情況。而當(dāng)需要傳輸二進(jìn)制文件的時(shí)候,F(xiàn)TP會(huì)采用二進(jìn)制傳輸模式進(jìn)行傳輸,因?yàn)槎M(jìn)制的每一位、每一字節(jié)都非常重要,需要一個(gè)一個(gè)的進(jìn)行傳輸;如果兩臺(tái)服務(wù)器是同種操作系統(tǒng),則用二進(jìn)制方式進(jìn)行數(shù)據(jù)文件傳輸和文本傳輸都是有效的。FTP的基本模型如圖2-1:用戶接口用戶接口控制進(jìn)程數(shù)據(jù)傳送進(jìn)程控制進(jìn)程數(shù)據(jù)傳輸進(jìn)程控制連接命令與應(yīng)答數(shù)據(jù)連接文件傳輸客戶端服務(wù)端用戶接口用戶接口控制進(jìn)程數(shù)據(jù)傳送進(jìn)程控制進(jìn)程數(shù)據(jù)傳輸進(jìn)程控制連接命令與應(yīng)答數(shù)據(jù)連接文件傳輸客戶端服務(wù)端圖2-1FTP的基本傳輸模型2.3.2SSH文件傳輸協(xié)議SSH(即SSH文件傳輸協(xié)議)有三種功能,可以數(shù)據(jù)流連接,提供文件訪問(wèn)、傳輸和管理功能的網(wǎng)絡(luò)傳輸協(xié)議。SFTP(即文件加密傳輸協(xié)議)是在SSH協(xié)議上多了加密的功能,使得數(shù)據(jù)傳輸更加的安全,有效的防止數(shù)據(jù)遭到盜竊和攻擊的事件發(fā)生。SSH協(xié)議主要由三層組成組織結(jié)構(gòu),第一層為傳輸層協(xié)議,在該層結(jié)構(gòu)上主要提供了服務(wù)器認(rèn)證,保密性及完整性,第二層為用戶認(rèn)證協(xié)議,在該層結(jié)構(gòu)上主要用于服務(wù)端向客戶端提供鑒別功能,第三層為連接協(xié)議,在該層結(jié)構(gòu)上主要將多個(gè)加密通道分為邏輯通道。SSH協(xié)議的三層結(jié)構(gòu)圖,如圖2-2:連接協(xié)議連接協(xié)議用戶認(rèn)證協(xié)議傳輸層協(xié)議圖2-2SSH協(xié)議三層結(jié)構(gòu)圖SSH協(xié)議的加密功能給數(shù)據(jù)傳輸提供了更高級(jí)別的安全通道,相比FTP協(xié)議,傳輸速率有所降低,但換來(lái)的是更加安全的傳輸環(huán)境。SSH協(xié)議的驗(yàn)證機(jī)制提供了兩種級(jí)別的安全驗(yàn)證,一種是利用口令進(jìn)行安全驗(yàn)證,即通過(guò)輸入賬號(hào)密碼便可以實(shí)現(xiàn)遠(yuǎn)程登陸主機(jī),但缺點(diǎn)就是不能保證所連接的主機(jī)就是真正的主機(jī),不能排除他人冒用的可能,因此也容易受到他人的攻擊;另一種是利用密鑰的安全驗(yàn)證,即需要依靠鑰匙,兩臺(tái)服務(wù)器都需要?jiǎng)?chuàng)建密鑰,然后將密鑰進(jìn)行交換,獲得密鑰,并密鑰一致的服務(wù)器才可以進(jìn)行遠(yuǎn)程登陸訪問(wèn)主機(jī)。2.3系統(tǒng)開(kāi)發(fā)技術(shù)2.3.1系統(tǒng)通信技術(shù)Socket(網(wǎng)絡(luò)套接字),通俗的將就是通信的端點(diǎn)。在Linux系統(tǒng)下的信息傳輸,利用socket模式對(duì)IO傳輸接口的打開(kāi)和關(guān)閉。Socket主要處在應(yīng)用層與TCP/IP協(xié)議族中的抽象層,它是成對(duì)存在的一種接口。在網(wǎng)絡(luò)編程中,經(jīng)常使用套接字socket來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)傳輸,而使用套接字的過(guò)程通常都會(huì)用到它的描述符。在一個(gè)通信中,一個(gè)描述符對(duì)應(yīng)一組通話,只有對(duì)應(yīng)的描述符才能進(jìn)行通話和數(shù)據(jù)傳輸。利用socket建立通信連接會(huì)運(yùn)用到套接字最基本的API接口,服務(wù)端和客戶端都會(huì)初始化socket,然后通過(guò)端口綁定和監(jiān)聽(tīng)建立連接,并利用接收函數(shù)(accept)發(fā)送信號(hào),對(duì)客戶端進(jìn)行阻塞等待發(fā)送接收信息;此時(shí)客戶端對(duì)服務(wù)端發(fā)送信號(hào),取消客戶端阻塞建立連接,連接成功后即可交互傳遞信息。如圖2-3socket建立連接圖:SSocket()Connect()Write()Read()Close()Socket()Bind()Listen()Write()Close()Accept()Read()Read()建立連接請(qǐng)求數(shù)據(jù)阻塞,直到客戶端重連回應(yīng)數(shù)據(jù)結(jié)束連接圖2-3socket建立連接圖2.3.2多進(jìn)程技術(shù)在Linux操作系統(tǒng)中,每一個(gè)運(yùn)行的程序都稱(chēng)之為進(jìn)程,而Linux系統(tǒng)是支持多次重復(fù)運(yùn)行同一個(gè)程序的,對(duì)此,該軟件系統(tǒng)涉及到數(shù)量龐大的數(shù)據(jù)備份,系統(tǒng)采用了使其在后臺(tái)運(yùn)行,不會(huì)占用當(dāng)前用戶的操作權(quán)限,同時(shí)也可以啟動(dòng)多個(gè)任務(wù)對(duì)數(shù)據(jù)進(jìn)行備份,將大量的數(shù)據(jù)拆分為多個(gè)任務(wù)同時(shí)進(jìn)行備份,減少時(shí)間和提高備份的效率。2.3.3I/O多路復(fù)用技術(shù)在Linux系統(tǒng)中,利用其標(biāo)準(zhǔn)輸入輸出和標(biāo)準(zhǔn)出錯(cuò)的端口進(jìn)行輸出文件,同時(shí)使用多個(gè)套接字進(jìn)行多個(gè)網(wǎng)絡(luò)連接和多種備份協(xié)議進(jìn)行處理,可以用來(lái)同一時(shí)間處理多個(gè)網(wǎng)絡(luò)傳輸數(shù)據(jù)的問(wèn)題,提高遠(yuǎn)程備份的效率。第3章系統(tǒng)需求分析3.1國(guó)內(nèi)備份系統(tǒng)市場(chǎng)需求分析市場(chǎng)需求分析是項(xiàng)目實(shí)施的前提,在開(kāi)發(fā)的過(guò)程中有著重中之重的作用,可以讓研發(fā)人員對(duì)系統(tǒng)有更充分的了解,也讓研發(fā)人員充分了解到該系統(tǒng)在市場(chǎng)中存在的價(jià)值和需求,推動(dòng)系統(tǒng)開(kāi)發(fā)的進(jìn)展。3.1.1企業(yè)現(xiàn)狀分析在大數(shù)據(jù)時(shí)代中,“零敲碎打”的數(shù)據(jù)管理模式已經(jīng)不能滿足企業(yè)中大量數(shù)據(jù)操作的日常需求,因此企業(yè)重新尋求更加方便的方式去管理、安全的保護(hù)大批量的數(shù)據(jù)。根據(jù)IDG(InternationalDataGroup,美國(guó)國(guó)際數(shù)據(jù)集團(tuán))的調(diào)查結(jié)果顯示,盡管大多數(shù)企業(yè)曾遭受數(shù)據(jù)丟失的情況,但是還有42%的受調(diào)查企業(yè)沒(méi)有使用對(duì)數(shù)據(jù)進(jìn)行保護(hù)的容災(zāi)備份系統(tǒng)[5]。3.1.2市場(chǎng)現(xiàn)狀分析據(jù)統(tǒng)計(jì),2012年企業(yè)中備份系統(tǒng)和恢復(fù)軟件市場(chǎng)規(guī)模達(dá)到44億美元,預(yù)計(jì)到2017年會(huì)達(dá)到68億美元,增長(zhǎng)速度高達(dá)9.0%[5]。而當(dāng)前市場(chǎng)上存在的備份系統(tǒng)和恢復(fù)軟件都是價(jià)格昂貴,且運(yùn)用到具體業(yè)務(wù)上還是不能夠完全滿足需求,導(dǎo)致了資源的浪費(fèi)。例如,國(guó)內(nèi)的廠商CommVault,從1996年成立至今,一直致力于研發(fā)數(shù)據(jù)備份和恢復(fù)系統(tǒng),技?jí)喝盒?,緊隨其后的還有三家傳統(tǒng)老牌廠商Symantec、EMC和IBM。而市面上有如此眾多知名度較高的廠家生產(chǎn)軟件和系統(tǒng),可還是未能普及各大小企業(yè)當(dāng)中去,所見(jiàn)市面上的軟件系統(tǒng)還是有所優(yōu)缺點(diǎn)的,不一定適用于所有的企業(yè)。3.2系統(tǒng)功能需求根據(jù)企業(yè)日常運(yùn)營(yíng),結(jié)合工作人員的工作習(xí)慣,對(duì)于遠(yuǎn)程文件備份系統(tǒng)的主要功能進(jìn)行分析和設(shè)計(jì)。在大量的數(shù)據(jù)文件備份的操作時(shí),通過(guò)手動(dòng)操作進(jìn)行備份時(shí),會(huì)有很多相同、枯燥的流程,同時(shí)手動(dòng)操作不能夠時(shí)時(shí)刻刻進(jìn)行著同樣的流程,而大多數(shù)企業(yè)備份數(shù)據(jù)通常會(huì)選擇的凌晨,服務(wù)器資源占用少的情況下進(jìn)行備份數(shù)據(jù),還可以選擇以差分備份或者完全備份進(jìn)行數(shù)據(jù)備份;而在企業(yè)中,數(shù)據(jù)處理的信息也是尤為重要的,需要將文件進(jìn)行過(guò)什么操作的信息進(jìn)行入庫(kù),以方便后續(xù)查詢(xún)。根據(jù)綜上所述,對(duì)本系統(tǒng)功能進(jìn)行分析,結(jié)合系統(tǒng)開(kāi)發(fā)規(guī)范,設(shè)計(jì)出如圖3-1所示的功能業(yè)務(wù)需求圖。選擇系統(tǒng)功選擇系統(tǒng)功能能能選擇備份模式差分/完全備份設(shè)置定時(shí)時(shí)間每時(shí)/每天/每月選擇手動(dòng)/自動(dòng)觸發(fā)模式數(shù)據(jù)備份信息入庫(kù)結(jié)束開(kāi)始圖3-1功能業(yè)務(wù)需求圖3.3系統(tǒng)性能需求根據(jù)企業(yè)實(shí)際業(yè)務(wù)需求的運(yùn)用,結(jié)合遠(yuǎn)程文件備份的特點(diǎn),本系統(tǒng)需要以下特點(diǎn):吞吐量大吞吐量是體現(xiàn)系統(tǒng)性能常見(jiàn)的指標(biāo),反映出系統(tǒng)在處理任務(wù)情況下的反應(yīng)能力,即單位時(shí)間內(nèi)系統(tǒng)能夠處理多少任務(wù)數(shù)據(jù)等。響應(yīng)時(shí)間短響應(yīng)時(shí)間是表示用戶從發(fā)出任務(wù)請(qǐng)求到系統(tǒng)開(kāi)始處理任務(wù)的這段時(shí)間,對(duì)于遠(yuǎn)程備份系統(tǒng)來(lái)說(shuō),用戶在web頁(yè)面配置信息、設(shè)置任務(wù)后,從系統(tǒng)接收到完整的信息開(kāi)始計(jì)算到系統(tǒng)做出處理的總時(shí)間。由以上可得以下公式(3-1):(3-1)其中,TPS是指吞吐量、TS是指平均響應(yīng)時(shí)間、C是指平均并發(fā)數(shù),平均并發(fā)用戶數(shù)的計(jì)算公式如下(3-2):(3-2)其中,n是指平均每天訪問(wèn)用戶數(shù)量,L是指一天內(nèi)用戶從登錄到退出的平均時(shí)間,T是指觀察時(shí)間長(zhǎng)度。可用性高遠(yuǎn)程備份系統(tǒng)可以長(zhǎng)時(shí)間正常運(yùn)行,保證時(shí)刻獲取最新的備份任務(wù)進(jìn)行處理。在發(fā)生宕機(jī)或系統(tǒng)故障時(shí)能第一時(shí)間將信息發(fā)送給用戶。第4章數(shù)據(jù)備份系統(tǒng)的設(shè)計(jì)本論文數(shù)據(jù)備份系統(tǒng)的主要設(shè)計(jì)內(nèi)容有四個(gè),有系統(tǒng)整體架構(gòu)、主要功能模塊架構(gòu)、數(shù)據(jù)庫(kù)表結(jié)構(gòu)以及系統(tǒng)通信架構(gòu)。4.1系統(tǒng)整體架構(gòu)的設(shè)計(jì)遠(yuǎn)程文件備份系統(tǒng)的開(kāi)發(fā)環(huán)境基于Linux平臺(tái),依賴(lài)TCP/IP等協(xié)議進(jìn)行數(shù)據(jù)的網(wǎng)絡(luò)傳輸,采用B/S的系統(tǒng)架構(gòu),該架構(gòu)可分為三個(gè)部分:服務(wù)端、客戶端、存儲(chǔ)端。如圖4-1可以看到各部分的聯(lián)系:用戶在客戶端進(jìn)入備份系統(tǒng),可以進(jìn)行備份任務(wù)的配置,通過(guò)服務(wù)端系統(tǒng)對(duì)客戶端發(fā)送請(qǐng)求;當(dāng)服務(wù)端接收到客戶端發(fā)送過(guò)來(lái)的請(qǐng)求后開(kāi)始執(zhí)行命令,對(duì)客戶配置的信息進(jìn)行分析,然后開(kāi)始遠(yuǎn)程登陸目標(biāo)服務(wù)器進(jìn)行對(duì)數(shù)據(jù)的遠(yuǎn)程備份,將備份的文件依照配置的地址進(jìn)行存放,最后返回信息到客戶端,方便客戶進(jìn)行查看數(shù)據(jù)備份的狀況[7-9]。控制模塊客戶端信息入庫(kù)模塊網(wǎng)絡(luò)通信模塊異常處理模塊控制模塊客戶端信息入庫(kù)模塊網(wǎng)絡(luò)通信模塊異常處理模塊數(shù)據(jù)庫(kù)數(shù)據(jù)采集模塊控制模塊服務(wù)端數(shù)據(jù)存放端信息入庫(kù)模塊異常處理模塊數(shù)據(jù)采集模塊數(shù)據(jù)庫(kù)數(shù)據(jù)存放端圖4-1整體結(jié)構(gòu)圖4.2系統(tǒng)功能架構(gòu)的設(shè)計(jì)本系統(tǒng)主要業(yè)務(wù)功能流程是通過(guò)在瀏覽器登陸系統(tǒng),并且對(duì)需要備份的服務(wù)器進(jìn)行備份任務(wù)的配置,包括服務(wù)器IP地址、服務(wù)器賬號(hào)和密碼、允許連接的端口號(hào),還有備份文件的所在目錄地址,以及存放備份文件的目錄地址等等。將所需的任務(wù)信息配置完成后,通過(guò)接口傳輸?shù)綄?duì)應(yīng)的數(shù)據(jù)庫(kù)存放信息,用于后臺(tái)Linux系統(tǒng)調(diào)用備份進(jìn)程,以及備份進(jìn)行獲取需要備份的目標(biāo)信息,最終登陸到目標(biāo)服務(wù)器,進(jìn)行數(shù)據(jù)的采集,最后完成對(duì)目標(biāo)文件的備份。如圖4-2系統(tǒng)業(yè)務(wù)功能框架如下:瀏覽器接入(內(nèi)網(wǎng)/外網(wǎng)門(mén)戶)瀏覽器接入(內(nèi)網(wǎng)/外網(wǎng)門(mén)戶)業(yè)務(wù)功能(數(shù)據(jù)備份任務(wù))HTTP數(shù)據(jù)庫(kù)模塊Linux系統(tǒng)備份進(jìn)程Linux內(nèi)核信息入庫(kù)模塊網(wǎng)絡(luò)傳輸模塊數(shù)據(jù)采集模塊客戶需要備份文件的服務(wù)器TCP/IPTCP/IP圖4-2系統(tǒng)業(yè)務(wù)功能框架4.2.1信息入庫(kù)模塊的設(shè)計(jì)信息入庫(kù)模塊主要功能是對(duì)文件操作后的信息和進(jìn)程運(yùn)行的信息存放到數(shù)據(jù)庫(kù)中。通過(guò)理由Linux系統(tǒng)下的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出的端口,和進(jìn)程的運(yùn)行信息,以及報(bào)錯(cuò)的信息重定向輸出到指定的位置文件,同時(shí)將錯(cuò)誤的信息,包括時(shí)間、報(bào)錯(cuò)的內(nèi)容等信息存放到數(shù)據(jù)庫(kù),以方便查找。4.2.2網(wǎng)絡(luò)傳輸模塊的設(shè)計(jì)網(wǎng)絡(luò)傳輸模塊主要功能是利用TCP/IP協(xié)議進(jìn)行,以及配置的任務(wù)信息,對(duì)需要備份的服務(wù)器進(jìn)行遠(yuǎn)程登陸并操作備份數(shù)據(jù)。該模塊主要利用了SSH和FTP協(xié)議進(jìn)行對(duì)服務(wù)器的連接,以及完成對(duì)數(shù)據(jù)的傳輸。4.2.3數(shù)據(jù)采集模塊數(shù)據(jù)采集模塊主要功能是在傳輸過(guò)程中對(duì)文件數(shù)據(jù)的每個(gè)字節(jié)的處理,以拷貝復(fù)制的方式將文件進(jìn)行采集,然后通過(guò)網(wǎng)絡(luò)傳輸協(xié)議將復(fù)制好的文件傳輸過(guò)去。4.2.4數(shù)據(jù)庫(kù)模塊數(shù)據(jù)庫(kù)模塊主要是將備份進(jìn)程和數(shù)據(jù)庫(kù)相關(guān)聯(lián)起來(lái),用于存放進(jìn)程信息,日志信息,備份任務(wù)信息等等,數(shù)據(jù)庫(kù)的優(yōu)勢(shì)可以更好的將數(shù)據(jù)存放起來(lái),同時(shí)也方便后續(xù)進(jìn)程維護(hù)和信息查看,也可以存放龐大的信息數(shù)據(jù),以表格的形式更為方便。4.3系統(tǒng)客戶端頁(yè)面的設(shè)計(jì)4.3.1主頁(yè)面的設(shè)計(jì)主頁(yè)面主要由三部分組成,包括備份資料管理、系統(tǒng)管理和登錄用戶信息管理,其布局如圖4-3系統(tǒng)主頁(yè)面:圖4-3系統(tǒng)主頁(yè)面自動(dòng)備份系統(tǒng)頁(yè)面的主要功能如下:備份資料管理主要是包括資料管理,日志管理,文件管理和異常管理;資料管理主要用于設(shè)備文件備份,通過(guò)新建設(shè)備、設(shè)備組、備份任務(wù)、進(jìn)程進(jìn)行設(shè)備文件備份;系統(tǒng)管理主要是對(duì)用戶賬號(hào)的配置進(jìn)行分配權(quán)限的管理。4.3.2備份資料管理界面資料管理界面主要是由設(shè)備管理、備份任務(wù)和進(jìn)程配置三個(gè)部分組成,這三個(gè)部分的信息配置主要關(guān)系到備份系統(tǒng)軟件是否可以正常運(yùn)行并成功備份文件。設(shè)備管理主要填寫(xiě)的是需要進(jìn)行備份任務(wù)服務(wù)器IP地址,賬號(hào)密碼等等;設(shè)備類(lèi)型主要是涉及到備份服務(wù)器終端的類(lèi)型,有windows、Linux等等;而設(shè)備組是將多個(gè)設(shè)備關(guān)聯(lián)到一起的,相對(duì)于分配到一個(gè)組里面,可以同一任務(wù)執(zhí)行多個(gè)設(shè)備。備份任務(wù)管理主要是將需要備份的策略進(jìn)行填寫(xiě),例如是按小時(shí)、按天、按周去執(zhí)行任務(wù),還有進(jìn)行備份的類(lèi)型,如FTP、SSH等等。進(jìn)程配置管理是將備份系統(tǒng)軟件在服務(wù)器已路徑的方式存放起來(lái),供備份任務(wù)調(diào)配去運(yùn)行軟件,以及該進(jìn)程的有效時(shí)間范圍。如圖4-4資料管理界面:圖4-4資料管理界面4.3.3日志管理界面日志管理主要是記錄執(zhí)行任務(wù)的執(zhí)行信息、進(jìn)程運(yùn)行信息,以及文件的上傳下載的信息。如圖4-5日志管理界面:圖4-5日志管理界面4.3.4文件管理界面文件管理界面是提供文件的存放位置以及文件信息,查看文件是否備份成功等等。如圖4-6文件管理界面:圖4-6資料管理界面4.3.5異常管理界面異常管理的主要功能是提供備份系統(tǒng)軟件在備份過(guò)程中出現(xiàn)的錯(cuò)誤或者網(wǎng)絡(luò)等因素造成的異常和錯(cuò)誤,并進(jìn)行報(bào)錯(cuò)提醒和通知。如圖4-7異常管理界面:圖4-7異常管理界面4.4系統(tǒng)數(shù)據(jù)庫(kù)表結(jié)構(gòu)遠(yuǎn)程文件備份系統(tǒng)在Linux下,除了用文件來(lái)保存配置信息,還使用了postgres數(shù)據(jù)庫(kù)表來(lái)記錄每個(gè)備份任務(wù)的信息、設(shè)備信息、保存的文件路徑信息等等。4.4.1任務(wù)信息表在企業(yè)中,不同的業(yè)務(wù)需求都有所不同,每個(gè)業(yè)務(wù)都可以唯一對(duì)應(yīng)個(gè)備份任務(wù),此時(shí)就需要配置相對(duì)于的任務(wù)信息。例如,表4-1任務(wù)信息表(t_tasks):用來(lái)保存系統(tǒng)中所有的備份任務(wù)的描述信息,是整個(gè)系統(tǒng)的核心表,備份進(jìn)程程序是依據(jù)此表來(lái)進(jìn)行備份處理的。表4-1任務(wù)信息表字段名稱(chēng)字段類(lèi)型含義f_taskidint備份任務(wù)IDtasknamevarchar(50)備份任務(wù)名稱(chēng)f_useridvarchar(50)用戶名f_backtypevarchar(10)備份類(lèi)型f_backpolicyint備份策略f_priorityint優(yōu)先級(jí)f_frequencyvarchar(10)備份頻度f(wàn)_timeint備份時(shí)間間隔f_invalidtimedatetime任務(wù)失效時(shí)間f_retrytimesint重復(fù)次數(shù)4.4.2設(shè)備信息表在設(shè)置了任務(wù)還不夠,還需要設(shè)置用到的設(shè)備,里面包括了遠(yuǎn)程登陸的IP地址、密碼、端口號(hào),以及備份協(xié)議類(lèi)型等等。其中,任務(wù)中的備份類(lèi)型需要跟設(shè)備表里面的備份類(lèi)型保持一次,是否正執(zhí)行不了備份進(jìn)程。以下為設(shè)備表結(jié)構(gòu),如表4-2設(shè)備表(t_device):用來(lái)保存?zhèn)浞菰O(shè)備的信息,以便設(shè)備組的引用。表4-2設(shè)備表字段名稱(chēng)字段類(lèi)型含義f_deviceidint備份設(shè)備IDf_devicenameVarchar(50)備份設(shè)備名稱(chēng)f_tasktypeVarchar(50)備份類(lèi)型f_ipVarchar(50)設(shè)備IPf_portint端口號(hào)f_usernamevarchar(50)登錄用戶名f_passwdvarchar(50)密碼續(xù)表4-2字段名稱(chēng)字段類(lèi)型含義f_keeptimelocalvarchar(50)設(shè)置保持時(shí)間f_hostdescvarchar(128)主機(jī)名稱(chēng)4.4.3備份進(jìn)程信息表以上列出了主要的功能表結(jié)構(gòu),是為了配置好需要執(zhí)行備份的設(shè)備、任務(wù)信息,再結(jié)合其他關(guān)聯(lián)表,以設(shè)備ID和任務(wù)ID關(guān)聯(lián)起來(lái),再配置一個(gè)進(jìn)程表,需要配置到進(jìn)程在Linux系統(tǒng)下的存放路徑(即可執(zhí)行文件的路徑),還有源目錄和本地目錄的配置。如表4-3備份進(jìn)程信息表(td_procsinfo):用于定義各個(gè)備份進(jìn)程的參數(shù)。表4-3備份進(jìn)程信息表字段名稱(chēng)字段類(lèi)型含義fd_procsidint備份設(shè)備IDfd_ProcsDescVarchar(50)備份設(shè)備名稱(chēng)fd_HostIPVarchar(50)備份類(lèi)型fd_HostDescVarchar(50)設(shè)備IPfd_InvaliDatedatetime端口號(hào)fd_ExecFileVarchar(128)相關(guān)的物理可執(zhí)行文件fd_LogFileVarchar(128)日志文件路徑fd_Timeoutint超時(shí)時(shí)間fd_TimeoutTypeVarchar(5)超時(shí)類(lèi)型fd_StartDatedatetime進(jìn)程開(kāi)始時(shí)間第5章系統(tǒng)功能的實(shí)現(xiàn)與測(cè)試5.1系統(tǒng)的開(kāi)發(fā)環(huán)境本系統(tǒng)采用C程序語(yǔ)言與C++程序語(yǔ)言相結(jié)合,并使用了開(kāi)源的Linux運(yùn)行系統(tǒng)作為開(kāi)發(fā)環(huán)境。在使用C開(kāi)發(fā)過(guò)程中,更多的是使用C++,因?yàn)镃++是C的加強(qiáng)版,里面新增了更加方便的機(jī)制,如增加了標(biāo)準(zhǔn)模板庫(kù)(STL)、面向?qū)ο蟮臋C(jī)制、運(yùn)算符重載以及異常處理等等[6]。5.1.1守護(hù)進(jìn)程在Linux系統(tǒng)下,利用守護(hù)進(jìn)程監(jiān)控備份進(jìn)程,防止備份進(jìn)程退出。守護(hù)進(jìn)程的基本原理是利用Linux系統(tǒng)的fork函數(shù)創(chuàng)建一個(gè)父進(jìn)程和一個(gè)子進(jìn)程,再利用Linux系統(tǒng)的特點(diǎn)將父進(jìn)程kill掉,讓子進(jìn)程歸系統(tǒng)管理,不會(huì)因?yàn)檫M(jìn)程父進(jìn)程退出而退出,從而獲得一個(gè)不受其他影響的進(jìn)程。主要源代碼如下:while(true){iRunCount++;//記錄重啟次數(shù)if(iRunCount!=1)gLogger<<LOG_INFO<<"systemrestart..."<<END;if((child=fork())==-1)//調(diào)用父子進(jìn)程{ gLogger<<LOG_ERROR<<"ForkError:"<<(char*)strerror(errno)<<END; exit(1);}elseif(child==0)//判斷子進(jìn)程狀態(tài){//gLogger是日志類(lèi)對(duì)象,將信息返回到日志文件中 inti; gLogger<<LOG_DEBUG<<"pid="<<(int)getpid()<<END;//獲取進(jìn)程號(hào)PID Run();// gLogger<<LOG_INFO<<"pid="<<(int)getpid()<<":Systemexit!"<<END; exit(0);}while(((child=wait(&status))==-1)&&(errno==EINTR));if(child==-1)gLogger<<LOG_INFO<<"WaitError:"<<(char*)strerror(errno)<<END;elseif(!status)gLogger<<LOG_INFO<<"Child["<<child<<"]terminated,statusiszero"<<END;elseif(WIFEXITED(status))//子進(jìn)程異常判斷 gLogger<<LOG_INFO<<"Child["<<child<<"]terminated,statusis"<<(int)WEXITSTATUS(status)<<END;elseif(WIFSIGNALED(status)) gLogger<<LOG_INFO<<"Child["<<child<<"]terminatedduetosignal"<<WTERMSIG(status)<<"notcaught"<<END;5.1.2異常處理在C++運(yùn)用異常處理功能對(duì)各模塊進(jìn)行捕獲信息,對(duì)有異常的模塊做出反應(yīng),及時(shí)中斷進(jìn)程并返回異常信息,可以讓研發(fā)人員更快捷的定位進(jìn)程異常的主要問(wèn)題在那一塊功能上。具體使用:try//獲取配置信息,初始化進(jìn)程{……//填寫(xiě)需要捕獲異常的模塊}catch(char*szExp){ FileLogger::GetInstance(szPLogName)->Log("Programaborted."); cin.get(); exit(0);}catch(...){ FileLogger::GetInstance(szPLogName)->Log("Unknownconfigerror.Programaborted."); cin.get(); exit(0);}5.1.3系統(tǒng)配置組件系統(tǒng)配置組件主要是實(shí)現(xiàn)對(duì)系統(tǒng)的cfg配置文件進(jìn)行讀取和解析,cfg文件是程序運(yùn)行前配置的。配置文件內(nèi)容如下:[system]callserver=ubuntu(運(yùn)行服務(wù)器名)dbhost=mysql(數(shù)據(jù)庫(kù)名)dbname=mysql(數(shù)據(jù)庫(kù)名)dbuser=postgres(數(shù)據(jù)庫(kù)權(quán)限名)dbpwd=Yi2W8sr8wTk=(數(shù)據(jù)庫(kù)加密密碼)dbip=(數(shù)據(jù)庫(kù)ip)dbport=5432(數(shù)據(jù)庫(kù)端口號(hào))通過(guò)提前配置cfg該文件,為數(shù)據(jù)庫(kù)模塊提供信息,用以連接數(shù)據(jù)庫(kù)做準(zhǔn)備。1.數(shù)據(jù)庫(kù)模塊該模塊的功能是實(shí)現(xiàn)系統(tǒng)和數(shù)據(jù)庫(kù)之間的交互,利用SQL語(yǔ)句的增刪改查去執(zhí)行命令。自定義數(shù)據(jù)庫(kù)類(lèi)CPdbAccess,其中包含了Connect(連接數(shù)據(jù)庫(kù)函數(shù))、DisConnect(斷開(kāi)數(shù)據(jù)庫(kù)連接函數(shù))、ReConnect(重新連接數(shù)據(jù)庫(kù)函數(shù))、ExecuteSQL(執(zhí)行sql語(yǔ)句函數(shù))、GetQueryRow(獲取實(shí)例函數(shù))等接口。其中的Connect連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)的方法主要是將獲取cfg文件信息,以參數(shù)的方式代入到登陸數(shù)據(jù)庫(kù)的SQL語(yǔ)句中,并再運(yùn)用pqxx代碼庫(kù)中的connect對(duì)象,執(zhí)行SQL。代碼如下:sprintf(sSql,"dbname=%suser=%spassword=%shostaddr=%sport=%s",szSid,szUser,szPassword,szIP,szPort);//參數(shù)代入SQL語(yǔ)句stringszSql=sSql;m_Conn=newconnection(sSql);//connect對(duì)象if(m_Conn->is_open())//判斷連接成功或者失敗{nConnected=1;cout<<"Openeddatabasesuccessfully:"<<m_Conn->dbname()<<endl;m_Conn->set_client_encoding("UTF8");//將編碼模式改為數(shù)據(jù)庫(kù)相同的UTF-8returniSUCCESSFUL;}else{nConnected=0;cout<<"Can'topendatabase"<<endl;returniCONNECTSERVERFAILED;}2.網(wǎng)絡(luò)傳輸模塊該模塊的功能是解決遠(yuǎn)程備份需要登陸遠(yuǎn)程主機(jī)的問(wèn)題,通過(guò)FTP或者SSH的方式進(jìn)行登陸,以下主要以SFTP的備份方式進(jìn)行分析。源碼中定了SSHBASE類(lèi)作為SSH協(xié)議功能載體,里面還包含了ConnectToSFtp(連接SFTP)、SendCmd(發(fā)送指令)、WaitForString(等待字符串)等一系列對(duì)登陸、讀取系統(tǒng)信息、返回系統(tǒng)信息操作的函數(shù)接口。其中的SendCmd函數(shù),因?yàn)槭褂玫腖inux系統(tǒng),需要對(duì)系統(tǒng)的操作命令行的字符進(jìn)行判斷,并且調(diào)用libssh2的API函數(shù)進(jìn)行讀寫(xiě)操作。源碼如下:intSSHBASE::SendCmd(char*cmd){charsendData[128],*pEnd;memset(sendData,0x00,sizeof(sendData));pEnd=strcpy(sendData,cmd)+strlen(sendData)-1;if('#'==*pEnd)//以#號(hào)判斷命令行狀態(tài){ *pEnd='\0';}else{ strcat(pEnd,"\n"); }intrc;cout<<"starttogetblocking"<<endl;intchannelrc=libssh2_session_get_blocking(session);printf("beforeset,statusis%d\n",channelrc);libssh2_session_set_blocking(session,0);//設(shè)置或清除會(huì)話的阻止模式channelrc=libssh2_session_get_blocking(session);printf("afterset,statusis%d\n",channelrc);cout<<"endtogetblocking"<<endl;rc=libssh2_channel_write(channelsession,sendData,strlen(sendData));//執(zhí)行讀寫(xiě)操作if(rc!=0){ cout<<"sendcmdlibssh2_channel_writeerror"<<endl; printf("sendcmdlibssh2_channel_writeerror");}returnrc;}3.數(shù)據(jù)備份采集模塊該系統(tǒng)主要的核心功能模塊就是對(duì)文件數(shù)據(jù)的拷貝備份,該模塊也運(yùn)用到了libssh2開(kāi)發(fā)庫(kù)中的API接口,對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)的操作。部分源代碼如下:intSSHBASE::WaitForString(char*strWait,char*strExit){ intiBufferIndex=0,ret; intiLenExit=strExit?strlen(strExit):0; //退出字符串的長(zhǎng)度 if(!strWait) { strWait="#"; } memset(m_Buffer,0,sizeof(m_Buffer)); channelrc=1;channelrc=libssh2_channel_read(channelsession,m_Buffer,sizeof(m_Buffer));/*就是此處,當(dāng)命令執(zhí)行完畢后,也就是channel中再無(wú)數(shù)據(jù)時(shí),這時(shí)再去讀取數(shù)據(jù)時(shí)會(huì)導(dǎo)致阻塞*/ //數(shù)據(jù)接收完畢if(strstr(m_Buffer,strWait))// ret=iSUCCESSFUL; else ret=iERRORSTRINGFOUND; returnret;}4.信息入庫(kù)模塊該模塊是為了記錄進(jìn)程運(yùn)行過(guò)程中的信息,方便后續(xù)調(diào)試和測(cè)試的查看。定了FileLogger類(lèi)對(duì)該模塊進(jìn)行封裝,增加函數(shù)接口有GetInstance(獲取實(shí)例)、Log(日志)。獲取實(shí)例的源代碼如下:FileLogger*FileLogger::GetInstance(char*szProcessName){if(fl==NULL){ fl=newFileLogger(szProcessName);//創(chuàng)建一個(gè)FileLogger對(duì)象的內(nèi)存空間} returnfl;}通過(guò)調(diào)用GetInstance該接口,可以對(duì)FileLogger類(lèi)新建對(duì)象,獲取新增對(duì)象地址。后面只需調(diào)用對(duì)象就可以使用類(lèi)內(nèi)的函數(shù)接口。5.2系統(tǒng)測(cè)試軟件測(cè)試是用來(lái)驗(yàn)證軟件功能的正確性、完整性、安全性和質(zhì)量的手段。在企業(yè)中,測(cè)試環(huán)境提前的搭建是必要的前提,盡量畢竟到客戶使用的現(xiàn)場(chǎng)環(huán)境測(cè)試軟件,避免對(duì)用戶使用照成影響。通過(guò)軟件測(cè)試,可以盡早發(fā)現(xiàn)系統(tǒng)漏洞并進(jìn)行修復(fù),保證系統(tǒng)的正常運(yùn)行。根據(jù)軟件開(kāi)發(fā)流程的要求與遠(yuǎn)程文件備份的流程,對(duì)系統(tǒng)的主要功能進(jìn)行了測(cè)試。測(cè)試環(huán)境為L(zhǎng)inux的Ubuntu16.04、postgres數(shù)據(jù)庫(kù)。以下為測(cè)試過(guò)程結(jié)果的分析,可以通過(guò)生成的log文件可以查看進(jìn)程是否成功運(yùn)行并備份了數(shù)據(jù)文件。5.2.1信息入庫(kù)模塊的測(cè)試將備份系統(tǒng)軟件的日志生成文件做了檢查,通過(guò)Linux系統(tǒng)的標(biāo)準(zhǔn)輸出端口,把進(jìn)行運(yùn)行的信息都重定向輸出到指定的LOG文件,并以時(shí)間的方式進(jìn)行命名保存為txt文件,如syslog20200317.txt;日志文件生成的內(nèi)容每條記錄都有對(duì)應(yīng)的時(shí)間已經(jīng)日志信息,如圖5-1日志內(nèi)容:圖5-1日志內(nèi)容5.2.2網(wǎng)絡(luò)傳輸模塊的測(cè)試通過(guò)日志文件可以看到,進(jìn)程開(kāi)始需要通過(guò)網(wǎng)絡(luò)連接到指定的數(shù)據(jù)庫(kù)獲取備份任務(wù),一旦網(wǎng)絡(luò)不通,則無(wú)法進(jìn)行下一步的備份操作,同時(shí)在遠(yuǎn)程登陸服務(wù)器時(shí)也需要通過(guò)網(wǎng)絡(luò)連接,并傳輸數(shù)據(jù)。如圖5-2進(jìn)程遠(yuǎn)程連接成功示例:圖5-2進(jìn)程遠(yuǎn)程連接成功示例5.2.3數(shù)據(jù)采集模塊的測(cè)試 數(shù)據(jù)采集模塊會(huì)在登陸的目標(biāo)服務(wù)器后通過(guò)Linux中的cd(改變當(dāng)前目錄路徑)命令進(jìn)入指定的文件目錄,再對(duì)子層里的文件進(jìn)行分析,記錄文件;如果有多層目錄,會(huì)先層層分析后再做下載文件的處理。如圖5-3文件的下載過(guò)程:圖5-3文件的下載過(guò)程如圖中,通過(guò)CD命令進(jìn)入指定的文件夾目錄,再分析出文件夾里有DAS2100和DAS2200兩個(gè)文件夾,在進(jìn)入分析子文件夾里的文件,最后再進(jìn)行下載保存文件。5.2.4數(shù)據(jù)庫(kù)模塊的測(cè)試數(shù)據(jù)庫(kù)模塊主要功能是測(cè)試進(jìn)程中用到的SQL語(yǔ)句是否正確,以及在頁(yè)面上配置的信息是否準(zhǔn)確,用于驗(yàn)證備份結(jié)果的準(zhǔn)確性。5.3測(cè)試結(jié)果系統(tǒng)經(jīng)過(guò)多次功能測(cè)試后,實(shí)現(xiàn)了預(yù)期的效果,完成了可定時(shí)、可遠(yuǎn)程的文件備份系統(tǒng)。第6章總結(jié)本文提出了一種基于Linux系統(tǒng)的文件實(shí)時(shí)備份系統(tǒng),可以對(duì)目標(biāo)文件進(jìn)行實(shí)時(shí)監(jiān)控,在文件有發(fā)生變化后進(jìn)行備份,提高了數(shù)據(jù)文件的安全性以及減少了需要定時(shí)手動(dòng)去備份的工作量,滿足了企業(yè)中對(duì)數(shù)據(jù)文件的保護(hù)。本文主要工作包括以下幾點(diǎn):1.從研究背景出發(fā),結(jié)合企業(yè)需求,分析備份系統(tǒng)該具備的功能和條件,為系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)提供理論基礎(chǔ)。2.基于理論基礎(chǔ),結(jié)合實(shí)際應(yīng)用和企業(yè)需要出發(fā),設(shè)計(jì)相應(yīng)的功能模塊,使各模塊能夠相互調(diào)用完成備份任務(wù),保證系統(tǒng)的靈活性和準(zhǔn)確性。3.設(shè)計(jì)基于Linux系統(tǒng)平臺(tái),依賴(lài)FTP/SSH協(xié)議的系統(tǒng)架構(gòu)和軟件結(jié)構(gòu),以此來(lái)實(shí)現(xiàn)系統(tǒng)功能。對(duì)系統(tǒng)業(yè)務(wù)流程進(jìn)行分析梳理,確定企業(yè)需求業(yè)務(wù)進(jìn)行業(yè)務(wù)流程設(shè)計(jì)。4.根據(jù)設(shè)計(jì)流程,對(duì)系統(tǒng)功能模塊進(jìn)行開(kāi)發(fā),并將模塊直接聯(lián)系起來(lái),完成系統(tǒng)整體功能。5.對(duì)系統(tǒng)進(jìn)行測(cè)試,根據(jù)測(cè)試結(jié)果進(jìn)行完善和修復(fù)。參考文獻(xiàn):[1]戴敏.網(wǎng)絡(luò)數(shù)據(jù)備份系統(tǒng)的研究[D].內(nèi)蒙古大學(xué).計(jì)算機(jī)科學(xué)與技術(shù),2013.1-2.[2]\t"36:8083/rwt/288/http/GEZC6MJZFZZUPLSSGM3A/kcms/detail/_blank"王利林,\t"36:8083/rwt/288/http/GEZC6MJZFZZUPLSSGM3A/kcms/detail/_blank"許榕生.\t"36:8083/rwt/288/http/GEZC6MJZFZZUPLSSGM3A/kns55/brief/_blank"網(wǎng)絡(luò)安全最后防線-網(wǎng)絡(luò)備份[J].計(jì)算機(jī)工程與應(yīng)用,2002(07).1-3.[3]田野.遠(yuǎn)程文件備份系統(tǒng)的研究與實(shí)現(xiàn)[D].鄭州大學(xué),2018-05-01.[4]\t"/item/FTP%E5%8D%8F%E8%AE%AE/_blank"周宏生.基于FTP協(xié)議的文件上傳和下載[J].科技資訊,2006(01).2-3.[5]\t"http://sh.xy22.top:90/kns/brief/knet"黃俏丹.\t"http://sh.xy22.top:90/kns/brief/_blank"備份/恢復(fù)軟件市場(chǎng)分析及企業(yè)競(jìng)爭(zhēng)態(tài)勢(shì)[J].\t"http://sh.xy22.top:90/kns/brief/_blank"電腦與電信,2013(07).3.[6]譚浩強(qiáng).C++程序設(shè)計(jì)(第3版)[M].北京:清華出版社,2015.[7]周斌.淺談數(shù)據(jù)備份技術(shù)與實(shí)踐[J].通訊世界,2013(07).2-4.[8]趙長(zhǎng),松廖巨,成賀勝等.自動(dòng)備份工具的設(shè)計(jì)與實(shí)現(xiàn)[J].電力信息與通信技術(shù).2019(01).1-2.[9]陳曉雯.計(jì)算機(jī)數(shù)據(jù)備份的應(yīng)用[J].山西電子技術(shù),2003(01).1-2.[10]鄭如秋,葉政杰.一種遠(yuǎn)程數(shù)據(jù)備份方式研究及在數(shù)據(jù)中心的應(yīng)用[J].電腦與信息技術(shù),2012(12).5-6.[11]王改性.數(shù)據(jù)存儲(chǔ)備份與災(zāi)難恢復(fù)[J].電子工業(yè)出版社,2009(02).15-18.[12]王紅熳.智能網(wǎng)容災(zāi)系統(tǒng)設(shè)計(jì)的關(guān)鍵技術(shù)研究[D].網(wǎng)絡(luò)技術(shù)研究院,2009(05).18.[13]李華,劉穎.計(jì)算機(jī)數(shù)據(jù)庫(kù)的備份與恢復(fù)技術(shù)研究[J].科學(xué)技術(shù)創(chuàng)新,2018.(12).1-2.[14]賈偉.大數(shù)據(jù)中心容災(zāi)備份的設(shè)計(jì)與實(shí)現(xiàn)[D].揚(yáng)州大學(xué),2018(11).22-24[15]王德鵬,王宗樹(shù).數(shù)據(jù)備份與災(zāi)難恢復(fù)考核系統(tǒng)設(shè)計(jì)研究[J].蘇州市職業(yè)大學(xué),2019(03).3.[16]張素珍,單振芳,白增山.基于網(wǎng)絡(luò)備份的科技成果管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2017(09).7-8.[17]汪威.虛擬網(wǎng)絡(luò)磁盤(pán)數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué).2012(09).12-13.[18]LiuHongqing.ResearchonApplicationofNetworkSystemSoftwareBasedonLargeDataAnalysis[C].Proceedingsof20192ndInternationalConferenceonComputerScienceandAdvancedMaterials.2019.[19]WeiMinZheng,BinXingFang.Structure-independentdisasterrecovery:Concept,architectureandimplementations[J].ScienceinChinaSeriesF:InformationSciences.2009(05).11-12致謝隨著畢業(yè)論文的完成,大學(xué)四年的學(xué)習(xí)生活也即將結(jié)束,在即將走出校園生活踏入社會(huì)的這時(shí),內(nèi)心久久不難平靜?;叵朐谶@四年的大學(xué)生活中,有過(guò)迷茫,有過(guò)彷徨,但更多的是堅(jiān)定,懂得在大學(xué)中需要去了解和收獲知識(shí),還有為人處世、工作能力以及生活方面的技能都得到了很大的提升,而這些都離不開(kāi)老師的教誨與指導(dǎo)和同學(xué)們的互相幫助,還有父母的支持與鼓勵(lì)。首先感謝我的指導(dǎo)老師,不論是在工作還是學(xué)習(xí)上,總能夠及時(shí)得到老師的幫助,也從導(dǎo)師身上學(xué)到了不止專(zhuān)業(yè)的知識(shí),還有嚴(yán)謹(jǐn)?shù)慕虒W(xué)態(tài)度、踏實(shí)的理論聯(lián)系實(shí)際的學(xué)術(shù)風(fēng)格,更重要的是能夠?qū)W習(xí)分析解決問(wèn)題的思路和待人處事的態(tài)度,這些都令我受益終生。正是有了這些導(dǎo)師的教導(dǎo),我才能順利的完成畢業(yè)論文的工作。再次感覺(jué)我的父母,如果在我選擇該專(zhuān)業(yè)的時(shí)候,沒(méi)有他們的支持,也不會(huì)有今天成就的我,同時(shí)也在精神和生活方面給了我一定的支持,使我可以專(zhuān)心的去學(xué)習(xí),讓我去戰(zhàn)勝面對(duì)的困難。最后,感謝一直關(guān)心與支持我的同學(xué)和朋友,四年來(lái),我們朝夕相處,共同進(jìn)步,感謝你們的關(guān)心和幫助。附錄進(jìn)程運(yùn)行的日志信息記錄如下:2019-12-0517:32:27->打開(kāi)數(shù)據(jù)庫(kù)連接2019-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 砂漿抹面施工方案
- 柱亞克力燈箱施工方案
- 展廳裝飾裝修承包合同
- 管道除銹施工方案
- 4米高圍擋施工方案
- 手球館地坪施工方案
- 房屋粉刷安裝施工方案
- 堤壩護(hù)坡混凝土施工方案
- 反光漆施工方案
- 填筑施工方案
- 家鄉(xiāng)鹽城城市介紹江蘇鹽城介紹課件
- 市政工程施工安全檢查標(biāo)準(zhǔn)
- 銀行整村授信工作經(jīng)驗(yàn)材料工作總結(jié)匯報(bào)報(bào)告2篇
- 四川事業(yè)單位工作人員收入分配制度改革實(shí)施意見(jiàn)
- 陜西省2023第二屆長(zhǎng)安杯大中小學(xué)國(guó)家安全知識(shí)競(jìng)賽題庫(kù)及答案
- 基建礦井應(yīng)急救援預(yù)案之綜合應(yīng)急預(yù)案匯編(完整版)資料
- GA/T 830-2021尸體解剖檢驗(yàn)室建設(shè)規(guī)范
- 《PEP英語(yǔ)六年級(jí)下冊(cè)Unit3Readandwrite》東城虎英小學(xué)王曉惠
- GB/T 3778-2021橡膠用炭黑
- GB/T 210.1-2004工業(yè)碳酸鈉及其試驗(yàn)方法第1部分:工業(yè)碳酸鈉
- GB/T 19228.3-2012不銹鋼卡壓式管件組件第3部分:O形橡膠密封圈
評(píng)論
0/150
提交評(píng)論