在Linux/Unix系統下,磁帶管理命令有哪些呢?下面是小編整理的實用的Linux/Unix系統磁帶管理命令,歡迎閱讀!
在本教程中你將會了解到:
· 磁帶裝置名
· 管理磁帶驅動器的基本命令
· 基本的備份和恢復命令
為什麼備份?
一個備份計劃對定期備份檔案來說很有必要,如果你寧願選擇不備份,那麼丟失重要資料的風險會大大增加。有了備份,你就有了從磁碟故障中恢復的能力。備份還可以幫助你抵禦:
· 意外的檔案刪除
· 檔案或檔案系統損壞
· 伺服器完全毀壞,包括由於火災或其他問題導致的同盤備份毀壞
· 硬碟或 SSD 崩潰
· 病毒或勒索軟體破壞或刪除檔案
你可以使用磁帶歸檔備份整個伺服器並將其離線儲存。
理解磁帶檔案標記和塊大小
每個磁帶裝置能儲存多個備份檔案。磁帶備份檔案通過 cpio,tar,dd 等命令建立。同時,磁帶裝置可以由多種程式開啟、寫入資料、及關閉。你可以儲存若干備份(磁帶檔案)到一個物理磁帶上。在每個磁帶檔案之間有個“磁帶檔案標記”。這用來指示一個物理磁帶上磁帶檔案的結尾以及另一個檔案的'開始。你需要使用 mt 命令來定位磁帶(快進,倒帶和標記)。
磁帶上的資料是如何儲存的
所有的資料使用 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) ###
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