■
在很多人眼中,在Linux中的備份數據是一件很繁瑣的事情。其實,在Linux有多種數據備份方式,可以實現單機或者網絡備份,操作起來同樣有章可循。這里就從多個角度。介紹了在Linux中備份數據的方法,希望對您有所幫助!
在眾多的Linux命令中,tar命令和備份操作息息相關,使用該命令,可以簡單高效的完成數據備份任務。其使用格式為“tar [參數] [文件/目錄 ]”,其中的參數有很多,例如“-c”參數表示創建新的備份文件,并將一個或多個文件參數指定的內容寫入備份文件的開頭?!?r”參數表示將一個或多個文件參數指定的文件內容寫入備份文件的結尾。參數“-t”查看備份文件的內容。參數“-x”從備份文件中抽取一個或者多個文件參數指定的內容。參數“-z”調用gzip來壓縮備份文件,與“-x”參數配置完成解壓縮操作。參數“-j”調用bzip來壓縮備份文件。參數“-v”創建或抽取過程中顯示過程信息?!?f”參數指定創建或抽取的文件。“-p”參數使用原文件的原屬性。參數“-p”使用絕對路徑歸檔。參數“-N yyyy/mm/dd”只備份比指定日期新的內容。參數“-M”可以實現多卷壓縮。
例 如 執 行“tar –cvf /tmp/mydataback.tar /mydata”命令,將“/mydata”中的所有內容備份到“/tmp/mydataback.tar”文件中,并且顯示創建過程信息。假設備份的目標為“/mydata”目錄,具體執行備份操作時,需要根據實際情況而定。執行“tar -cvzf /tmp/mydataback.tar.gz /mydata”命令,調用Gzip壓縮工具完成備份操作。執行“tar–cvjf /tmp/mydataback.tar.bz2 /mydata”命 令,調用bzip2壓縮功能完成備份操作。執行“tar cvzMf /dev/st0/mydataback.tar.gz /mydata”命令,將“/mydata”目錄中的內容備份到第一個磁帶機中的“homeback.tar.gz”文件中,如果磁帶機滿,需要插入另外的磁帶。對應的,執行“tar –xzvf /dev/st0/mydataback.tar.gz /mydata”命令,執行解壓動作,將磁帶機中“homeback.tar.gz”的內容還原到“/mydata”目錄中。為了提高備份靈活性,可以配合計劃任務功能,來自動備份所需的內容。
在Windows中,可以利用計劃任務來實現該功能。在Linux中雖然可以利用AT命令,來實現定時操作功能,不過該命令僅針對運行一次的任務而言。要想實現循環運行例行性計劃任務,需要使用Cron(Crond)這個系統服務來實現。該服務是用來周期性的執行某種任務或等待處理某些事件的一個守護進程,系統默認會安裝此服務工具,并且會自動啟動Crond進程,Crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。也可以執行“yum install crontabs”命令,來安裝該服務。執行“/sbin/servicecrond start”命令,來啟動該服務。
執 行“chkconfig –level 35 crond on”命令,使其可以自動運行。執行“crontab –e”命令,可以編輯“crontab”文件,在其中添加“00 01 ** * tar –czvf /dev/st0/tomyang_backup.tar.gz /mydata”內容,之后保存該文件。這樣,在每天凌晨1點,將“/mydata”目 錄 中 的 內容備份到第一個磁帶機中的“tomyang_backup.tar.gz”文件中。運行“crontab l”命令,來顯示當前用戶的Crontab文件的內容。查看所有的計劃任務項目。這里簡單介紹一下YUM安裝方式,和普通的RPM安裝方式不同,YUM安裝方式可以根據預設的YUM源,來自動分析安裝某軟件所需的全部RPM包,之后根據不同RPM包之間的依賴關系,自動下載所有相關的RPM包,來完成所需軟件的安裝操作。所謂YUM源,指的是存放所有RPM包以及相關分析文件的路徑,包括指定的本地目錄,FTP或者HTTP服務器等。
使用Tar命令,可以針對指定的文件進行備份。而使用Dump命令,針對的是文件系統進行備份操作,可以將目錄或者整個文件系統備份到指定的設備或者大文件中。Dump命令可以檢查文件系統上的文件并確定備份目標,而且可以實現分卷備份功能,其語法結構為“dump [-cu][-0123456789][-f 設備名][-T日期][目錄或者文件系統]”。
其中的“-c”參數表示創建新的備份文件。參數“-0123456789”表示備份的等級,“0”表示最完整的備份,可以備份所有的文件。對于非0級別,可以備份上一次備份以來修改或者新增的文件?!?f”參數指定備份設備,“-T”參數指定開始備份的時間?!?u”參數可以產生備份記錄文件,“-t”參數指定備份文件名,“-W”或者“-w”參數顯示備份的參數信息。例如執行“dump-0u –f /tmp/mydataback.bak /mydata”命 令,將“/mydata”目錄全部內容備份到“/tmp/mydataback.bak”文件中,備份等級為0,在“etc/dumpdates”文件中記錄備份信息。執行“dump –lu –f /tmp/mydataback.bak /mydata”命令,執行等級為1的備份操作,只備份指定目錄中使用上面的等級為0的備份命令之后發生變動的文件,這實際上實現了增量備份功能,其余參數與上述內容相同。
當然,將Dump的備份等級和Crontab命令相結合,可以實現定時自動備份功能。 利 用 執 行“crontab –e”命令,對“crontab”文件進行編輯處理,在其中添加“00 01 * * 0 dump -0u /tmp/mydataback.bak /mydata”,“00 01 * * 1 dump -1u /tmp/mydataback1.bak /mydata”,“00 01 * * 2 dump-2u /tmp/mydataback2.bak /mydata”,“00 01 ** 3 dump -3u /tmp/mydataback3.bak /mydata”,“00 01 * * 4 dump -4u /tmp/mydataback4.bak /mydata”,“00 01 * * 5 dump-5u /tmp/mydataback5.bak /mydata”,“00 01 ** 6 dump -6u /tmp/mydataback6.bak /mydata”等內容,這樣就可以利用計劃任務功能,在每周日凌晨1點對預設目錄執行完整備份操作,之后從星期一到星期六每天凌晨1點執行一次增量備份任務,產生的備份文件名稱 從“mydataback1.bak”到“mydataback6.bak”。將完整備份和增量備份結合起來使用,針對的目標是自上一次備份以來內容發生變動的文件。
當然,如果想利用計劃任務功能實現差異備份,則在“crontab”文件中添加“00 01 * * 0 dump -0u /tmp/mydataback.bak /mydata”,“00 01 * * 1 dump -1u /tmp/mydataback1.bak /mydata”,“00 01 * * 2 dump-1u /tmp/mydataback2.bak /mydata”,“00 01 ** 3 dump -1u /tmp/mydataback3.bak /mydata”,“00 01 * * 4 dump -1u /tmp/mydataback4.bak /mydata”,“00 01 * * 5 dump-1u /tmp/mydataback5.bak /mydata”,“00 01 ** 6 dump -1u /tmp/mydataback6.bak /mydata”,注意其中的第一行Dump命令的等級為0,后面命令的等級全部為1,這樣就可以在每周日凌晨1點對預設目錄執行完整備份操作,之后從星期一到星期六每天凌晨1點執行一次差異備份任務。將完整備份和差異備份結合,針對的目標是自上一次完整備份以來內容發生變動的文件。將上述兩種備份組合進行比較,不難看出,完整備份+增量備份所產生的備份文件的體積會小于后一種備份組合模式。例如,當周日備份后,假設周一周二周三有些文件內容變動了,前者只備份針對上一次備份后內容改變文件,而后者則每天備份自周日完整備份之后內容變動的文件。但是,在恢復數據時,后者則方便的多,只需恢復最近一次完整備份和最后一次差異備份的數據即可,
在恢復數據時,使用的是Restore命令,其語法為“restore –[hirRCvy] [-f 備份文件]”。其中的“-C”參數可以將備份文件和已存在的文件進行比對。“-f”參數指定備份的文件。“-h”參數表示僅僅還原目錄但排除和該目錄相關的文件?!?i”參數使用交互模式執行還原操作。“-r”參數執行還原操作?!?R”參數表示全面還原文件系統時,檢查操作的開始點?!?v”參數顯示還原過程,“-y”參數忽略提示問題,全部按照同意方式操作指令。例如執行“restore–v /tmp/mydataback.bak/mydata”命令,將備份文件“/tmp/mydataback.bak”還原到“/mydata”目錄中。
和Tar命令相比,CPIO的功能更為全面和完善。例如,當備份的tar文件里面存在壞塊的話,使用Tar命令,就無法對備份文件進行順利訪問。而使用CPIO命令,則可以訪問除了壞塊之外的所有備份數據。CPIO命令在執行備份操作時,需要合適的文件列表,因此常常將其和ls命令結合起來使用。其語法結構為“cpio[參數] [文件列表]”。其中的“-o”參數表示創建備份文件,“-v”參數顯示備份過程,“-i”參數恢復備份數據,“-d”參數自動創建目錄,“-t”查看備份文件,“-u”強制覆蓋已經存在的內容,“-m”保留時間屬性,“--absolute-filenames”參數保留絕對路徑。
例如執行“ls /mydata |cpio o > /tmp/mydataback.bak”命令,將“/mydata”目錄中的所有內容備份到“/tmp/mydataback.bak”文件中。執行“find /mydata mtime l type f print | cpio o > /tmp/mydataback.bak”命令,可以將“/mydata”目錄中24小時內修改過的文件備份到“/tmp/mydataback.bak”中。當然,也可以利用crontab命令,在“crontab”文件中添加“00 01 * * * ls /mydata | cpio o > / tmp/mydataback.bak”語句,在每天的凌晨一點將“/mydata”目錄的內容備份到“tmp/mydataback.bak”文件中。
在Windows中,可以使用Ghost或者系統自帶的備份工具,將指定的分區創建為鏡像文件,之后根據需要將其還原到目標分區中,這大大提高了數據備份和恢復的效率。在Linux中,可以使用Partimage這款軟件,使用gzip或者bzip壓縮格式,針對不同的分區創建鏡像文件,該工具還可以將鏡像文件進行分割處理,便于復制到優盤等移動存儲器上,還可以通過網絡保存分區數據。利用鏡像文件,可以提高裝機效率。例如現在某臺主機上安裝好Linux,并為其創建鏡像文件,之后利用Partimage的恢復功能,在別的主機上恢復鏡像文件,快速完系統安裝操作。該工具支持ext2fs,ext3fs,Reiser3,FAT12/32,NTFS,HPFS等分區類型。
執 行“yum y install bzip2-devel.i* newt-devel.i* openssl-devel.i*” 命令,安裝關聯的軟件包,這可以為Partimage的安裝提供支撐。執行“tar xvjf partimage-0.x.x.x.tar.bz2”,“cd partimage-0.x.x”,“./configure”,“make”,“make install”命 令,執 行Parimage的安裝操作,其中的“partimage-0.x.x.x.tar.bz2”表示安裝包版本號,其名稱根據實際情況而定。之后執行“partimage”命令,啟動該程序。在其運行界面中的“image file to create /use”欄中輸入目標鏡像文件的名稱和保存路徑,如果不指定路徑的話,則保存在用戶當前目錄中,默認的后綴名為“.000”,您可以輸入“.img”后綴名。在“Partition to save/restore”列表中顯示所有的分區項目,選擇需要備份的分區。
在“Action to done” 欄中選擇“save partition into a new image file”項,表示創建分區鏡像文件。選擇“Restore partition from an image file”項,則表示從目標鏡像文件中還原數據,選擇“Restore an MBR from the imagefile”項,表示還原目標分區的引導記錄。設置好所需參數后,點擊F5鍵,在彈出界面中的“Compression level”欄中選擇壓縮級別,依次包括不壓縮,使用gzip進行壓縮,使用Bzip2進行壓縮等。在“Options”欄 中 選 擇“check partition before saving”項,表示在操作之前檢測分區是否存在錯誤,選 擇“Enter description”項,允許輸入描述信息。選擇“Overwrite without prompt”項,表示直接覆蓋數據禁止顯示提示信息。在“Image split mode”欄中選擇分卷壓縮方式,依次包括當備份文件所在的磁盤空間不足時,選擇新的存儲位置;當備份文件體積查過預定值時選擇新的存儲位置;在每次改變分卷信息后等待操作等。在“If finished successfully”欄中設置當備份完畢后執行的動作,依次包括等待,關機,重啟,退出Partimage等。點擊F5鍵,輸入描述信息,點擊OK按鈕,顯示詳細的備份參數信息,點擊OK按鈕執行備份操作,將指定分區備份為預設的鏡像文件。
按照上述方法,可以對任意分區執行備份處理。當執行還原操作時,先啟動Partimage,在其操作界面中選擇目標分區,在“Image File to create/use”欄 中 輸入鏡像文件名稱,在“Action to done”欄中選擇還原項目,點擊F5鍵,可以在還原操作進行適當調整,例如選擇“Erase free blocks with zero values”項,可以對目標分區空閑部分進行0數據填充操作,徹底清除之前的無關內 容。 選 擇“Simulation of the restoreation(nothing is written)”項,表示未被鏡像文件覆蓋的區域如果存在原始數據,之后依然可以對其進行訪問。點擊F5鍵,執行數據還原操作,使用選定的鏡像文件恢復目標分區內容。
除了在本機上使用Partimage備份還原分區外,還可以使用客戶機/服務器模式運行該軟件,允許用戶將鏡像文件存儲到服務器上,之后從服務器上執行分區還原操作。在服務器上安裝Partimage的服務器端程序,執 行“rpm ivm partimageserver-x.x.x.x.el5.rf.i386.rpm”命令,完成安裝操 作,其 中 的“partimageserver-x.x.x.x” 表 述 具體的版本號。執行“service partimaged restart” 和“chkconfig partimaged on”命 令,啟 動Parimage服 務器端程序,并將其設置為自動運行狀態。使用VI等工具, 對“/etc/partimaged/partimagedusers”文件進行編輯,在其中添加允許使用網絡備份和恢復的用戶名稱,每行一個用戶名,這些用戶必須是已經存在的系統用戶。對應的,在客戶端主機上執行“rpm ivh partimage-x.x.x-l.el5.rf.i386.rpm”命令,執行Partimage客戶端程序的安裝操作。
在客戶端上執行“partimage”命令,來啟動該程序,在其主界面中可以看到,使用方法與單機版幾乎一致,例如選擇目標分區,輸入鏡像文件名稱等。
所不同的是需要在“Connect to server”欄中輸入Partimage服務器端程序所在的服務器IP以及端口號(默認為4025),點擊F5鍵,在下一個窗口中輸入對應的用戶名和密碼,該用戶名必須保存在上述“/etc/partimaged/partimagedusers”文件中。點擊OK按鈕,在下一步窗口可以設置備份參數,這與上述介紹的基本一致。之后點擊F5鍵,執行針對目標分區的備份操作,并將產生的鏡像文件保存到服務器上的“/var/partimaged”目錄中。當需要還原鏡像文件時,只需在Partimage主界面中選擇目標分區,選擇鏡像文件,輸入服務器IP和端口,之后按照提示完成恢復操作即可,具體的操作方法與上述基本相同。
征稿啟示
數據管理欄目旨在幫助廣大網絡管理技術人員解決目前在企業中存在的各種數據存儲管理方面的問題,欄目涉及歸檔、存儲、容災、備份、大數據、虛擬化等方面內容,現向廣大讀者朋友征稿。為了更好的實現這個目標,使數據管理欄目的文章更加充實、實用,特向廣大讀者朋友征集稿件,字數在3000字左右,要求必須原創。希望廣大讀者朋友踴躍投稿,
投稿須知:
1、非常歡迎采用電子郵件的形式投稿,稿件,郵件可直接發給投稿信箱:micsun@365master.com。以電子郵件投稿的讀者,請在郵件主題中注明“投稿”字樣。
2、來稿請以TXT文本格式保存。文章中需要插入圖片者,請將清晰圖片另存為BMP/JPEG/TIF格式。行文中出現的標點符號應使用中文全角字符(程序代碼和屏幕顯示中的原字符保持不變)。
3、所有來稿本刊會在五個工作日內回信確認是否收到,一個月內確認是否發表。作者請在來信中注明自己的姓名、工作單位、聯系地址、電話(包括手機)、郵編、身份賬號碼等信息,以便本刊隨時與您聯系。如未得到回復,請您確定一下郵件是否正常發出,若重發后仍未得到回復,可以打電話查詢,編輯部電話:
010-88559469。