16条实用的Linux/Unix 磁带管理命令

在本教程中你将会了解到:

磁带设备名

管理磁带驱动器的基本命令

基本的备份和恢复命令

为什么备份?

一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加。有了备份,你就有了从磁盘故障中恢复的能力。备份还可以帮助你抵御:

  1. 意外的文件删除
  2. 文件或文件系统损坏
  3. 服务器完全毁坏,包括由于火灾或其他问题导致的同盘备份毁坏
  4. 硬盘或 SSD 崩溃
  5. 病毒或勒索软件破坏或删除文件

你可以使用磁带归档备份整个服务器并将其离线存储。

理解磁带文件标记和块大小

每个磁带设备能存储多个备份文件。磁带备份文件通过 cpio,tar,dd 等命令创建。同时,磁带设备可以由多种程序打开、写入数据、及关闭。你可以存储若干备份(磁带文件)到一个物理磁带上。在每个磁带文件之间有个“磁带文件标记”。这用来指示一个物理磁带上磁带文件的结尾以及另一个文件的开始。你需要使用 mt 命令来定位磁带(快进,倒带和标记)。

磁带上的数据是如何存储的

所有的数据使用 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 磁带设备?

输入下列命令:

 
  
  1. ### Linux(更多信息参阅 man) ### 
  2. lsscsi 
  3. lsscsi -g 
  4.  
  5. ### IBM AIX ### 
  6. lsdev -Cc tape 
  7. lsdev -Cc adsm 
  8. lscfg -vl rmt* 
  9.  
  10. ### Solaris Unix ### 
  11. cfgadm –a 
  12. cfgadm -al 
  13. luxadm probe 
  14. iostat -En 
  15.  
  16. ### HP-UX Unix ### 
  17. ioscan Cf 
  18. ioscan -funC tape 
  19. ioscan -fnC tape 
  20. ioscan -kfC tape 

mt 命令示例

在 Linux 和类 Unix 系统上,mt 命令用来控制磁带驱动器的操作,比如查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令需要作为 root 用户执行。语法如下:

 
  
  1. mt -f /tape/device/name operation 

设置环境

你可以设置 TAPE shell 变量。这是磁带驱动器的路径名。在 FreeBSD 上默认的(如果变量没有设置,而不是 null)是 /dev/nsa0。可以通过 mt 命令的 -f 参数传递变量覆盖它,就像下面解释的那样。

 
  
  1. ### 添加到你的 shell 配置文件 ### 
  2.  TAPE=/dev/st1 #Linux 
  3.  TAPE=/dev/rmt/2 #Unix 
  4.  TAPE=/dev/nsa3 #FreeBSD 
  5.  export TAPE 

1:显示磁带/驱动器状态

 
  
  1. mt status  ### Use default 
  2. mt -f /dev/rmt/0  status ### Unix 
  3. mt -f /dev/st0 status ### Linux 
  4. mt -f /dev/nsa0 status ### FreeBSD 
  5. mt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1 

你可以像下面一样使用 shell 循环语句遍历一个系统并定位其所有的磁带驱动器:

 
  
  1. for d in 0 1 2 3 4 5 
  2. do 
  3.  mt -f "/dev/rmt/${d}" status 
  4. done 

2:倒带

 
  
  1. mt rew 
  2. mt rewind 
  3. mt -f /dev/mt/0 rewind 
  4. mt -f /dev/st0 rewind 

3:弹出磁带

 
  
  1. mt off 
  2. mt offline 
  3. mt eject 
  4. mt -f /dev/mt/0 off 
  5. mt -f /dev/st0 eject 

4:擦除磁带(倒带,在支持的情况下卸载磁带)

 
  
  1. mt erase 
  2. mt -f /dev/st0 erase  #Linux 
  3. mt -f /dev/rmt/0 erase #Unix 

5:张紧磁带盒

如果磁带在读取时发生错误,你重新张紧磁带,清洁磁带驱动器,像下面这样再试一次:

 
  
  1. mt retension 
  2. mt -f /dev/rmt/1 retension #Unix 
  3. mt -f /dev/st0 retension #Linux 

6:在磁带当前位置写入 EOF 标记

 
  
  1. mt eof  
  2. mt weof  
  3. mt -f /dev/st0 eof 

7:将磁带前进指定的文件标记数目,即跳过指定个 EOF 标记

磁带定位在下一个文件的第一个块,即磁带会定位在下一区域的第一个块(见图01):

 
  
  1. mt fsf 
  2. mt -f /dev/rmt/0 fsf 
  3. mt -f /dev/rmt/1 fsf 1 #go 1 forward file/tape (see fig.01) 

8:将磁带后退指定的文件标记数目,即倒带指定个 EOF 标记

磁带定位在下一个文件的第一个块,即磁带会定位在 EOF 标记之后(见图01):

 
  
  1. mt bsf 
  2. mt -f /dev/rmt/1 bsf 
  3. mt -f /dev/rmt/1 bsf 1 #go 1 backward file/tape (see fig.01) 

这里是磁带定位命令列表:

 
  
  1. fsf    前进指定的文件标记数目。磁带定位在下一个文件的第一块。 
  2.  
  3. fsfm   前进指定的文件标记数目。磁带定位在前一文件的最后一块。 
  4.  
  5. bsf    后退指定的文件标记数目。磁带定位在前一文件的最后一块。 
  6.  
  7. bsfm   后退指定的文件标记数目。磁带定位在下一个文件的第一块。 
  8.  
  9. asf    磁带定位在指定文件标记数目的开始位置。定位通过先倒带,再前进指定的文件标记数目来实现。 
  10. fsr    前进指定的记录数。 
  11.  
  12. bsr    后退指定的记录数。 
  13.  
  14. fss    (SCSI tapes)前进指定的 setmarks。 
  15.  
  16. bss    (SCSI tapes)后退指定的 setmarks。 

基本备份命令

让我们来看看备份和恢复命令。

9:备份目录(tar 格式)

 
  
  1. tar cvf /dev/rmt/0n /etc 
  2. tar cvf /dev/st0 /etc 

10:恢复目录(tar 格式)

 
  
  1. tar xvf /dev/rmt/0n -C /path/to/restore 
  2. tar xvf /dev/st0 -C /tmp 

11:列出或检查磁带内容(tar 格式)

 
  
  1. mt -f /dev/st0 rewind; dd if=/dev/st0 of=- 
  2.  
  3. ### tar 格式 ### 
  4. tar tvf {DEVICE} {Directory-FileName} 
  5. tar tvf /dev/st0 
  6. tar tvf /dev/st0 desktop 
  7. tar tvf /dev/rmt/0 foo > list.txt 

12:使用 dump 或 ufsdump 备份分区

 
  
  1. ### Unix 备份 c0t0d0s2 分区 ### 
  2. ufsdump 0uf /dev/rmt/0  /dev/rdsk/c0t0d0s2 
  3.  
  4. ### Linux 备份 /home 分区 ### 
  5. dump 0uf /dev/nst0 /dev/sda5 
  6. dump 0uf /dev/nst0 /home 
  7.  
  8. ### FreeBSD 备份 /usr 分区 ### 
  9. dump -0aL -b64 -f /dev/nsa0 /usr 

13:使用 ufsrestore 或 restore 恢复分区

 
  
  1. ### Unix ### 
  2. ufsrestore xf /dev/rmt/0 
  3. ### Unix 交互式恢复 ### 
  4. ufsrestore if /dev/rmt/0 
  5.  
  6. ### Linux ### 
  7. restore rf /dev/nst0 
  8. ### 从磁带媒介上的第6个备份交互式恢复 ### 
  9. restore isf 6 /dev/nst0 
  10.  
  11. ### FreeBSD 恢复 ufsdump 格式 ### 
  12. restore -i -f /dev/nsa0 

14:从磁带开头开始写入(见图02)

 
  
  1. ### 这会覆盖磁带上的所有数据 ### 
  2. mt -f /dev/st1 rewind 
  3.  
  4. ### 备份 home ### 
  5. tar cvf /dev/st1 /home 
  6.  
  7. ### 离线并卸载磁带 ### 
  8. mt -f /dev/st0 offline 

从磁带开头开始恢复:

 
  
  1. mt -f /dev/st0 rewind 
  2. tar xvf /dev/st0 
  3. mt -f /dev/st0 offline 

15:从最后一个 tar 后开始写入(见图02)

 
  
  1. ### 这会保留之前写入的数据 ### 
  2. mt -f /dev/st1 eom 
  3.  
  4. ### 备份 home ### 
  5. tar cvf /dev/st1 /home 
  6.  
  7. ### 卸载 ### 
  8. mt -f /dev/st0 offline 

16:从 tar number 2 后开始写入(见图02)

 
  
  1. ### 在 tar number 2 之后写入(应该是 2+1)### 
  2. mt -f /dev/st0 asf 3 
  3. tar cvf /dev/st0 /usr 
  4.  
  5. ### asf 等效于 fsf ### 
  6. mt -f /dev/sf0 rewind 
  7. mt -f /dev/st0 fsf 2 

从 tar number 2 恢复 tar:

 
  
  1. mt -f /dev/st0 asf 3 
  2. tar xvf /dev/st0 
  3. mt -f /dev/st0 offline 

关于第三方备份工具

Linux 和类Unix系统都提供了许多第三方工具,可以用来安排备份,包括磁带备份在内,如:

Amanda

Bacula

rsync

duplicity

rsnapshot






本文作者:佚名
来源:51CTO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值