標籤:磁帶管理
磁帶裝置應只用於定時的檔案歸檔或將資料從一台伺服器傳送至另一台。一般磁帶裝置與 Unix 機器銜接,用 mt 或 mtx 操控。強烈建議您將一切的資料一起備份到磁碟(也許是雲中)和磁帶裝置中。
在本教程中你將會瞭解到:
磁帶裝置名稱
管理磁帶磁碟機的基本命令
基本的備份和恢複命令
為什麼備份?
一個備份計劃對定期備份檔案來說很有必要,如果你寧願選擇不備份,那麼丟失重要資料的風險會大大增加。有了備份,你就有了從磁碟故障中恢複的能力。備份還可以協助你抵禦:
意外的檔案刪除
檔案或檔案系統損壞
伺服器完全毀壞,包括由於火災或其他問題導致的同盤備份毀壞
硬碟或 SSD 崩潰
病毒或勒索軟體破壞或刪除檔案
你可以使用磁帶歸檔備份整個伺服器並將其離線儲存。
理解磁帶檔案標記和塊大小
每個磁帶裝置能儲存多個備份檔案。磁帶備份檔案通過 cpio,tar,dd 等命令建立。同時,磁帶裝置可以由多種程式開啟、寫入資料、及關閉。你可以儲存若干備份(磁帶檔案)到一個物理磁帶上。在每個磁帶檔案之間有個“磁帶檔案標記”。這用來指示一個物理磁帶上磁帶檔案的結尾以及另一個檔案的開始。你需要使用 mt 命令來定位磁帶(快進,倒帶和標記)。
650) this.width=650;" title="" src="http://www.linuxprobe.com/wp-content/uploads/2016/05/tape-management_02.jpg" alt="tape management_02" width="580" height="200" style="border:0px;vertical-align:middle;margin:0px auto;height:auto;" />
磁帶上的資料是如何儲存的
650) this.width=650;" title="" src="http://www.linuxprobe.com/wp-content/uploads/2016/05/tape-management_03.jpg" alt="tape management_03" width="598" height="229" style="border:0px;vertical-align:middle;margin:0px auto;height:auto;" />
所有的資料使用 tar 以連續磁帶儲存格式連續地儲存。第一個磁帶歸檔會從磁帶的物理開始端開始儲存(tar #0)。接下來的就是 tar #1,以此類推。
Unix 上的磁帶裝置名稱
/dev/rmt/0 或 /dev/rmt/1 或 /dev/rmt/[0-127] :Unix 上的常規磁帶裝置名稱。磁帶自動倒回。
/dev/rmt/0n :以無倒回為特徵,換言之,磁帶使用之後,停留在目前狀態等待下個命令。
/dev/rmt/0b :使用磁帶介面,也就是 BSD 的行為。各種類型的作業系統比如 AIX,Windows,Linux,FreeBSD 等的行為更有可讀性。
/dev/rmt/0l :設定密度為低。
/dev/rmt/0m :設定密度為中。
/dev/rmt/0u :設定密度為高。
/dev/rmt/0c :設定密度為壓縮。
/dev/st[0-9] :Linux 特定 SCSI 磁帶裝置名稱。
/dev/sa[0-9] :FreeBSD 特定 SCSI 磁帶裝置名稱。
/dev/esa0 :FreeBSD 特定 SCSI 磁帶裝置名稱,在關閉時彈出(如果可以的話)。
磁帶裝置名稱樣本
/dev/rmt/1cn 指明正在使用 unity 1,壓縮密度,無倒回。
/dev/rmt/0hb 指明正在使用 unity 0,高密度,BSD 行為。
Linux 上的自動倒回 SCSI 磁帶裝置名稱:/dev/st0
Linux 上的無倒回 SCSI 磁帶裝置名稱:/dev/nst0
FreeBSD 上的自動倒回 SCSI 磁帶裝置名稱:/dev/sa0
FreeBSD 上的無倒回 SCSI 磁帶裝置名稱:/dev/nsa0
如何列出已安裝的 scsi 磁帶裝置?
輸入下列命令:
### Linux(更多資訊參閱 man) ###lsscsilsscsi -g### IBM AIX ###lsdev -Cc tapelsdev -Cc adsmlscfg -vl rmt*### Solaris Unix ###cfgadm –acfgadm -alluxadm probeiostat -En### HP-UX Unix ###ioscan Cfioscan -funC tapeioscan -fnC tapeioscan -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 defaultmt -f /dev/rmt/0 status ### Unixmt -f /dev/st0 status ### Linuxmt -f /dev/nsa0 status ### FreeBSDmt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1
你可以像下面一樣使用 shell 迴圈語句遍曆一個系統並定位其所有的磁帶磁碟機:
for d in 0 1 2 3 4 5do mt -f "/dev/rmt/${d}" statusdone2:倒帶
mt rewmt rewindmt -f /dev/mt/0 rewindmt -f /dev/st0 rewind
3:彈出磁帶
mt offmt offlinemt ejectmt -f /dev/mt/0 offmt -f /dev/st0 eject
4:擦除磁帶(倒帶,在支援的情況下卸載磁帶)
mt erasemt -f /dev/st0 erase #Linuxmt -f /dev/rmt/0 erase #Unix
5:張緊磁帶盒
如果磁帶在讀取時發生錯誤,你重新張緊磁帶,清潔磁帶磁碟機,像下面這樣再試一次:
mt retensionmt -f /dev/rmt/1 retension #Unixmt -f /dev/st0 retension #Linux
6:在磁帶當前位置寫入 EOF 標記
mt eofmt weofmt -f /dev/st0 eof
7:將磁帶前進指定的檔案標記數目,即跳過指定個 EOF 標記
磁帶定位在下一個檔案的第一個塊,即磁帶會定位在下一地區的第一個塊(見圖01):
mt fsfmt -f /dev/rmt/0 fsfmt -f /dev/rmt/1 fsf 1 #go 1 forward file/tape (see fig.01)
8:將磁帶後退指定的檔案標記數目,即倒帶指定個 EOF 標記
磁帶定位在下一個檔案的第一個塊,即磁帶會定位在 EOF 標記之後(見圖01):
mt bsfmt -f /dev/rmt/1 bsfmt -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 /etctar cvf /dev/st0 /etc
10:恢複目錄(tar 格式)
tar xvf /dev/rmt/0n -C /path/to/restoretar 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/st0tar tvf /dev/st0 desktoptar tvf /dev/rmt/0 foo > list.txt12:使用 dump 或 ufsdump 備份分區
### Unix 備份 c0t0d0s2 分區 ###ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s2### Linux 備份 /home 分區 ###dump 0uf /dev/nst0 /dev/sda5dump 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 rewindtar xvf /dev/st0mt -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 3tar cvf /dev/st0 /usr### asf 等效於 fsf ###mt -f /dev/sf0 rewindmt -f /dev/st0 fsf 2
從 tar number 2 恢複 tar:
mt -f /dev/st0 asf 3tar xvf /dev/st0mt -f /dev/st0 offline
關於第三方備份工具
Linux 和類Unix體系都供給了很多第三方東西,能夠用來組織備份,包含磁帶備份在內,如:
Amanda
Bacula
rsync
duplicity
rsnapshot
原文連結:http://www.magedu.com/71669.html
本文出自 “馬哥Linux培訓” 部落格,請務必保留此出處http://mageedu.blog.51cto.com/4265610/1926414
15條有用的Linux/Unix 磁帶管理指令