15條有用的Linux/Unix 磁帶管理指令

磁帶設備應只用于定時的文件歸檔或將數據從一臺服務器傳送至另一臺。一般磁帶設備與?Unix?機器銜接,用?mt?或 mtx 操控。強烈建議您將一切的數據一起備份到磁盤(也許是云中)和磁帶設備中。

在本教程中你將會了解到:

  1. 磁帶設備名
  2. 管理磁帶驅動器的基本命令
  3. 基本的備份和恢復命令

為什么備份?

一個備份計劃對定期備份文件來說很有必要,如果你寧愿選擇不備份,那么丟失重要數據的風險會大大增加。有了備份,你就有了從磁盤故障中恢復的能力。備份還可以幫助你抵御:

  1. 意外的文件刪除
  2. 文件或文件系統損壞
  3. 服務器完全毀壞,包括由于火災或其他問題導致的同盤備份毀壞
  4. 硬盤或 SSD 崩潰
  5. 病毒或勒索軟件破壞或刪除文件

你可以使用磁帶歸檔備份整個服務器并將其離線存儲。

理解磁帶文件標記和塊大小

每個磁帶設備能存儲多個備份文件。磁帶備份文件通過 cpio,tar,dd 等命令創建。同時,磁帶設備可以由多種程序打開、寫入數據、及關閉。你可以存儲若干備份(磁帶文件)到一個物理磁帶上。在每個磁帶文件之間有個“磁帶文件標記”。這用來指示一個物理磁帶上磁帶文件的結尾以及另一個文件的開始。你需要使用 mt 命令來定位磁帶(快進,倒帶和標記)。

tape management_02

磁帶上的數據是如何存儲的

tape management_03

所有的數據使用 tar 以連續磁帶存儲格式連續地存儲。第一個磁帶歸檔會從磁帶的物理開始端開始存儲(tar #0)。接下來的就是 tar #1,以此類推。

Unix 上的磁帶設備名

  1. /dev/rmt/0 或 /dev/rmt/1 或 /dev/rmt/[0-127] :Unix 上的常規磁帶設備名。磁帶自動倒回。
  2. /dev/rmt/0n :以無倒回為特征,換言之,磁帶使用之后,停留在當前狀態等待下個命令。
  3. /dev/rmt/0b :使用磁帶接口,也就是 BSD 的行為。各種類型的操作系統比如 AIX,Windows,Linux,FreeBSD 等的行為更有可讀性。
  4. /dev/rmt/0l :設置密度為低。
  5. /dev/rmt/0m :設置密度為中。
  6. /dev/rmt/0u :設置密度為高。
  7. /dev/rmt/0c :設置密度為壓縮。
  8. /dev/st[0-9] :Linux 特定 SCSI 磁帶設備名。
  9. /dev/sa[0-9] :FreeBSD 特定 SCSI 磁帶設備名。
  10. /dev/esa0 :FreeBSD 特定 SCSI 磁帶設備名,在關閉時彈出(如果可以的話)。

磁帶設備名示例

  1. /dev/rmt/1cn 指明正在使用 unity 1,壓縮密度,無倒回。
  2. /dev/rmt/0hb 指明正在使用 unity 0,高密度,BSD 行為。
  3. Linux 上的自動倒回 SCSI 磁帶設備名:/dev/st0
  4. Linux 上的無倒回 SCSI 磁帶設備名:/dev/nst0
  5. FreeBSD 上的自動倒回 SCSI 磁帶設備名:/dev/sa0
  6. 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

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體系都供給了很多第三方東西,能夠用來組織備份,包含磁帶備份在內,如:

  1. Amanda
  2. Bacula
  3. rsync
  4. duplicity
  5. rsnapshot

 

馬哥教育-Linux學習-1群 485374463

馬哥教育-Linux學習-2群 339184057

 

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播