在本教程中你將會了解到:linux
爲何備份?ios
一個備份計劃對按期備份文件來講頗有必要,若是你寧願選擇不備份,那麼丟失重要數據的風險會大大增長。有了備份,你就有了從磁盤故障中恢復的能力。備份還能夠幫助你抵禦:shell
你可使用磁帶歸檔備份整個服務器並將其離線存儲。服務器
理解磁帶文件標記和塊大小工具
每一個磁帶設備能存儲多個備份文件。磁帶備份文件經過 cpio,tar,dd 等命令建立。同時,磁帶設備能夠由多種程序打開、寫入數據、及關閉。你能夠存儲若干備份(磁帶文件)到一個物理磁帶上。在每一個磁帶文件之間有個「磁帶文件標記」。這用來指示一個物理磁帶上磁帶文件的結尾以及另外一個文件的開始。你須要使用 mt 命令來定位磁帶(快進,倒帶和標記)。操作系統
磁帶上的數據是如何存儲的rest
全部的數據使用 tar 以連續磁帶存儲格式連續地存儲。第一個磁帶歸檔會從磁帶的物理開始端開始存儲(tar #0)。接下來的就是 tar #1,以此類推。教程
Unix 上的磁帶設備名接口
磁帶設備名示例ci
如何列出已安裝的 scsi 磁帶設備?
輸入下列命令:
### Linux(更多信息參閱 man) ### lsscsi lsscsi -g ### IBM AIX ### lsdev -Cc tape lsdev -Cc adsm lscfg -vl rmt* ### Solaris Unix ### cfgadm –a cfgadm -al luxadm probe iostat -En ### HP-UX Unix ### ioscan Cf ioscan -funC tape ioscan -fnC tape ioscan -kfC tape
mt 命令示例
在 Linux 和類 Unix 系統上,mt 命令用來控制磁帶驅動器的操做,好比查看狀態或查找磁帶上的文件或寫入磁帶控制標記。下列大多數命令須要做爲 root 用戶執行。語法以下:
mt -f /tape/device/name operation
設置環境
你能夠設置 TAPE shell 變量。這是磁帶驅動器的路徑名。在 FreeBSD 上默認的(若是變量沒有設置,而不是 null)是 /dev/nsa0。能夠經過 mt 命令的 -f 參數傳遞變量覆蓋它,就像下面解釋的那樣。
### 添加到你的 shell 配置文件 ### TAPE=/dev/st1 #Linux TAPE=/dev/rmt/2 #Unix TAPE=/dev/nsa3 #FreeBSD export TAPE
1:顯示磁帶/驅動器狀態
mt status ### Use default mt -f /dev/rmt/0 status ### Unix mt -f /dev/st0 status ### Linux mt -f /dev/nsa0 status ### FreeBSD mt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1
你能夠像下面同樣使用 shell 循環語句遍歷一個系統並定位其全部的磁帶驅動器:
for d in 0 1 2 3 4 5 do mt -f "/dev/rmt/${d}" status done
2:倒帶
mt rew mt rewind mt -f /dev/mt/0 rewind mt -f /dev/st0 rewind
3:彈出磁帶
mt off mt offline mt eject mt -f /dev/mt/0 off mt -f /dev/st0 eject
4:擦除磁帶(倒帶,在支持的狀況下卸載磁帶)
mt erase mt -f /dev/st0 erase #Linux mt -f /dev/rmt/0 erase #Unix
5:張緊磁帶盒
若是磁帶在讀取時發生錯誤,你從新張緊磁帶,清潔磁帶驅動器,像下面這樣再試一次:
mt retension mt -f /dev/rmt/1 retension #Unix mt -f /dev/st0 retension #Linux
6:在磁帶當前位置寫入 EOF 標記
mt eof mt weof mt -f /dev/st0 eof
7:將磁帶前進指定的文件標記數目,即跳過指定個 EOF 標記
磁帶定位在下一個文件的第一個塊,即磁帶會定位在下一區域的第一個塊(見圖01):
mt fsf mt -f /dev/rmt/0 fsf mt -f /dev/rmt/1 fsf 1 #go 1 forward file/tape (see fig.01)
8:將磁帶後退指定的文件標記數目,即倒帶指定個 EOF 標記
磁帶定位在下一個文件的第一個塊,即磁帶會定位在 EOF 標記以後(見圖01):
mt bsf mt -f /dev/rmt/1 bsf mt -f /dev/rmt/1 bsf 1 #go 1 backward file/tape (see fig.01)
這裏是磁帶定位命令列表:
fsf 前進指定的文件標記數目。磁帶定位在下一個文件的第一塊。 fsfm 前進指定的文件標記數目。磁帶定位在前一文件的最後一塊。 bsf 後退指定的文件標記數目。磁帶定位在前一文件的最後一塊。 bsfm 後退指定的文件標記數目。磁帶定位在下一個文件的第一塊。 asf 磁帶定位在指定文件標記數目的開始位置。定位經過先倒帶,再前進指定的文件標記數目來實現。 fsr 前進指定的記錄數。 bsr 後退指定的記錄數。 fss (SCSI tapes)前進指定的 setmarks。 bss (SCSI tapes)後退指定的 setmarks。
基本備份命令
讓咱們來看看備份和恢復命令。
9:備份目錄(tar 格式)
tar cvf /dev/rmt/0n /etc tar cvf /dev/st0 /etc
10:恢復目錄(tar 格式)
tar xvf /dev/rmt/0n -C /path/to/restore tar xvf /dev/st0 -C /tmp
11:列出或檢查磁帶內容(tar 格式)
mt -f /dev/st0 rewind; dd if=/dev/st0 of=- ### tar 格式 ### tar tvf {DEVICE} {Directory-FileName} tar tvf /dev/st0 tar tvf /dev/st0 desktop tar tvf /dev/rmt/0 foo > list.txt
12:使用 dump 或 ufsdump 備份分區
### Unix 備份 c0t0d0s2 分區 ### ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s2 ### Linux 備份 /home 分區 ### dump 0uf /dev/nst0 /dev/sda5 dump 0uf /dev/nst0 /home ### FreeBSD 備份 /usr 分區 ### dump -0aL -b64 -f /dev/nsa0 /usr
13:使用 ufsrestore 或 restore 恢復分區
### Unix ### ufsrestore xf /dev/rmt/0 ### Unix 交互式恢復 ### ufsrestore if /dev/rmt/0 ### Linux ### restore rf /dev/nst0 ### 從磁帶媒介上的第6個備份交互式恢復 ### restore isf 6 /dev/nst0 ### FreeBSD 恢復 ufsdump 格式 ### restore -i -f /dev/nsa0
14:從磁帶開頭開始寫入(見圖02)
### 這會覆蓋磁帶上的全部數據 ### mt -f /dev/st1 rewind ### 備份 home ### tar cvf /dev/st1 /home ### 離線並卸載磁帶 ### mt -f /dev/st0 offline
從磁帶開頭開始恢復:
mt -f /dev/st0 rewind tar xvf /dev/st0 mt -f /dev/st0 offline
15:從最後一個 tar 後開始寫入(見圖02)
### 這會保留以前寫入的數據 ### mt -f /dev/st1 eom ### 備份 home ### tar cvf /dev/st1 /home ### 卸載 ### mt -f /dev/st0 offline
16:從 tar number 2 後開始寫入(見圖02)
### 在 tar number 2 以後寫入(應該是 2+1)### mt -f /dev/st0 asf 3 tar cvf /dev/st0 /usr ### asf 等效於 fsf ### mt -f /dev/sf0 rewind mt -f /dev/st0 fsf 2
從 tar number 2 恢復 tar:
mt -f /dev/st0 asf 3 tar xvf /dev/st0 mt -f /dev/st0 offline
關於第三方備份工具
Linux 和類Unix系統都提供了許多第三方工具,能夠用來安排備份,包括磁帶備份在內,如:
免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/