11.6 磁带设备
这一节我们将介绍磁带设备的管理情况。一般用户基本上用不到磁带设备,但对大型系统来说,磁带是常用的备份工具。
11.6.1 磁带设备的命名规则
磁带设备使用了一个逻辑的设备名。逻辑磁带设备文件位于/dev/rmt子目录下,作为一个从/devices目录而来的符号链接。通常情况下,你可以按照图11-1所示的那样指定一个磁带驱动设备。
图11-1 磁带驱动设备命名
按照默认的密度指定驱动器编号
通常,通过磁带驱动器的逻辑单元编号来指定驱动器,该编号是一个从0~n的数字。如果你不指定密度,驱动器将按照它预定义的那样来写,通常是磁带支持的最高密度。
最多时可以把7个SCSI磁带驱动器加入到一个SCSI控制器中。
例如,要指定第一个驱动器,可以使用下面的设备名:
/dev/rmt/0
要指定第二个驱动器,可以使用下面的设备名:
/dev/rmt/1
注意,大多数设备名字都是从0开始顺序编号的。这样一来,当你提到第一个磁盘或者目标时,它的编号是0而不是1。
为一个磁带驱动器指定不同的密度
当某种磁带驱动器只支持某种特定的密度时,就需要指定这个所需的密度。命名规则如下:
/dev/rmt/XA
要判断一个驱动器所支持的不同的密度,查看/dev/rmt子目录,其中包含了支持每一种磁带的不同输出密度类型的磁带驱动器文件集。
表11-7显示了磁带设备名字中的密度选项。例如,要指定在第一个(0)驱动器上的中密度的磁带设备,可以使用下面的设备名。
/dev/rmt/0m
表11-7 磁带设备名字中的密度选项
密度选项:
Null 默认的情况,表示首选密度(最高)
1 低密度
m 中密度
h 高密度
u 超密度
c 压缩的密度
指定不倒带选项
当命令执行后,磁带会自动倒带,除非你在设备名字中指定了不倒带选项。要指定不倒带,可以在设备名的最后输入“n”。
例如,要在第一个(0)驱动器上指定一个中密度的原始磁化磁带设备,并且不倒带,可以使用下面的设备名。
/dev/rmt/0mn
11.6.2 控制磁带的几个有用命令
1.将磁带重新拉紧
当磁带在读数据时发生了错误,需要将磁带重新拉紧,清洗磁带驱动器,然后再重新试读一遍。
下面的例子将驱动器/dev/rmt/1中的磁带重新拉紧:
#mt-f /dev/rmt/1 retension
2.倒带
要将一盘磁带倒带,须输入mt-f /dev/rmt/* rewind并按Enter键。通过设备号*所指定的磁带驱动器,磁带将被倒回。
下面的例子显示了在驱动器/dev/rmt/1中倒带的操作:
#mt-f /dev/rmt/1 rewind
3.显示磁带驱动器的状态
要显示一个磁带驱动器的状态,需输入mt-f /dev/rmt/n status并按Enter键。
下面的例子中显示了驱动器/dev/rmt/1中没有磁带:
#mt-f /dev/rmt/1 status
/dev/rmt1/1:no tape loaded or drive offline
下面的例子显示了驱动器/dev/rmt/1中的磁带状态:
#mt-f /dev/rmt/1 status
Archive QIC-150 tape drive:
Sense key(0x6)=unit attention residual=0 retries=0
file no=0 block no=0
#
11.6.3 tar命令
使用tar命令可向磁带中拷贝文件和目录。tar命令在大多数UNIX操作系统上都有。tar命令的不足在于它没有注意到文件系统的边界,完整路径名长度不能超过255个字符,它不能拷贝空目录或者诸如设备文件等特定的文件,而且它不能用来创建多磁带卷。
下面介绍如何使用tar命令来把文件拷贝到磁带上、列出文件、粘贴文件,以及恢复文件。
1.向磁带上拷贝文件
使用下面的步骤可以把文件拷贝到磁带上。
(1)改变到包含想要拷贝的文件的目录中。
(2)将一盘可写的磁带插入磁带驱动器。
(3)输入tar cvf /dev/rmt/n filename filename filename…并按Enter键。
C选项:拷贝所指定的文件;
v选项:在拷贝文件时显示详细信息;
f选项:指定了tar文件要写入的地方。
所指定的文件名被拷贝到磁带中,覆盖掉磁带中任何已有的文件。
(4)从驱动器中拿走磁带并在磁带标签上写出文件名。
下面的例子向磁带驱动器0中的磁带上拷贝了两个文件。
#cd /home/chinaunix
#ls evaluation *
Evaluation.doc evaluation.doc.backup
#tar cvf /dev/rmt/0 evaluation *
A evaluation.doc 86 blocks
A evaluation.doc.backup 84 blocks
#
2.列出磁带上的文件
使用下面的步骤来列出一个磁带上的文件。
(1)向磁带驱动器中插入一个磁带上的文件。
(2)输入tar tvf /dev/rmt/n并回车。
t选项:列出了所指定的文件;
v选项:显示详细信息;
f选项:指定了tar文件所在位置。
在下面的例子中,驱动器0中的磁带的表格内容包含了两个文件。
#tar tvf /dev/rmt/0
rw-rw-rw-6693/10 44032 Apr 24 15:32 2005 chinaunix.doc
rw-rw-rw-6693/10 43008 Apr 24 15:32 2005 chinaunix.doc.bak
#
3.向磁带上粘贴文件
使用下面的步骤来粘贴文件,而不覆盖磁带上已有的文件。
(1)进入要拷贝的文件的目录中。
(2)向磁带驱动器中插入一盘非写保护的磁带。
(3)输入tar rvf /dev/rmt/n filename filename filename…并按Enter键。所指定的文件名会被粘贴到你所指定的驱动器中磁带已有的文件后面。
(4)从驱动器中拿走磁带并在磁带标签上写上文件的名字。
下面的例子是将一个文件粘贴到驱动器0的磁带已有文件的后面。
#cd /home/chinaunix
#tar cvf /dev/rmt/0 junk
a junk 1 blocks
再来查看磁带中的内容:
#tar cvf /dev/rmt/0
rw-rw-rw-6693/10 44032 Apr 24 15:32 2005 chinaunix.doc
rw-rw-rw-6693/10 43008 Apr 24 15:32 2005 chinaunix.doc.bak
rw-rw-rw-6693/10 58 Apr 24 15:32 2005 junk
4.从磁带上恢复文件和目录
使用下面的步骤可从磁带上恢复文件。
(1)进入想要恢复的目录;
(2)把磁带插入磁带驱动器;
(3)输入tar xvf /dev/rmt/n并按Enter键。所指定的磁带驱动器中的磁带上的所有文件都被拷贝到了当前目录中。
下面的例子从驱动器0中的磁带上拷贝所有文件。
#cd /home/chinaunix/evaluations
#tar xvf /dev/rmt0
x evaluations.doc,44032 bytes,86 tape blocks
x evaluation.doc.bak,43008 bytes,84 tape blocks
#
11.6.4 cpio命令
使用cpio命令可以从Solaris系统复制文件到SunOS 4.x系统上。使用cpio命令的优点在于它比tar命令更加有效的将数据打包放置在磁带上,在恢复文件时,它跳过了磁带上任何出错的地方,为不同类型的系统之间的移植提供了写文件所用到的不同的格式(tar,ustart,crc,odc,bar),并建立了多磁带卷。
当你使用cpio命令来建立一个存档时,该命令从标准输入中获得文件列表或者路径名,然后写入标准输出中。可以把输出重新定向到一个文件或者设备中。下面的部分介绍如何使用cpio命令来拷贝文件到盒式磁带上,怎样列出文件、恢复所有文件以及从盒式磁带中恢复一个文件子集。
1.拷贝一个目录中所有的文件到磁带上
使用下面的步骤来把某个目录中的所有文件拷贝到磁带上。
(1)向磁带驱动器中插入一盘可写的磁带。
(2)输入ls |cpio -oc >/dev/rmt/n并回车。
其中,o选项表示拷贝文件,c选项为了可移植性用ASCII字符写入头信息。目录中所有的文件都被拷贝到所指定的驱动器中的磁带上,覆盖掉该磁带上任何原有的文件,并且显示出总共拷贝的文件块数。
(3)从驱动器中拿走磁带并在磁带的标签上写下文件名。
在下面的例子中,目录/home/duanf中所有的文件被拷贝到磁带驱动器0中的磁带上。
%cd /home/duanf
%ls |cpio -oc > /dev/rmt/0
46 blocks
%
2.列出磁带上的文件
使用下面的步骤来列出磁带上的文件。
(1)将磁带插入磁带驱动器
(2)输入cpio -civt < /dev/rmt/n并回车。i选项从磁带中读取内容。v选项显示输出,其格式类似于ls –l命令的输出。t选项列出了所指定的驱动器中磁带上文件内容的列表。
在下面的例子中,驱动器0中的磁带内容列表包括了四个文件。
%cpio –civt < /dev/rmt/0
10666 duanf 3895 Feb 27 15:17:08 2005 Boot.chapter
10666 duanf 3895 Feb 27 15:17:48 2005 Directory.chapter
10666 duanf 6587 Feb 27 15:19:11 2005 Install.chapter
10666 duanf 1324 Feb 27 15:20:12 2005 Intro.chapter
%
3.从磁带上恢复所有的文件
如果存档文件中包含了相对路径名,输入文件将作为一个在当前目录内的目录被建立。然而,如果存档文件建立时只有绝对路径名,那么将用同样的绝对路径名来建立文件。
用下面的步骤来从磁带上恢复所有的文件。
(1)改变目录到想放置文件的地方。
(2)向磁带驱动器中插入磁带。
(3)输入cpio -icv < /dev/rmt/n 并按回车。所指定的驱动器内磁带中的所有的文件都被拷贝到当前目录。
下面的例子从驱动器0中的磁带上拷贝出所有的文件。
%cpio -icv < /dev/rmt/0
Boot.chapter
Directory.chapter
Install.chapter
Intro.chapter
46 blocks
%
4.从磁带上恢复一个文件子集
通过指定一个匹配模式并使用shell通配符(该通配符跟在选项后面并用引号括起来),可以从存档中恢复一个文件子集。
(1)改变目录到想要放置文件的地方。
(2)向磁带驱动器中插入磁带。
(3)输入cpio -icv “*file” < /dev/rmt/0 并回车。
所有与模式“*file”相匹配的文件将被拷贝到当前目录中。可以指定多个模式,但每一个必须用引号来包含。
下面的例子从驱动器0中的磁带上拷贝出所有的以chapter为后缀的文件。
%cd /home/duanf
% cpio -icv “*chapter” < /dev/rmt/0
Boot.chapter
Directory.chapter
Install.chapter
Intro.chapter
46 blocks
%
更多的信息请参见cpio(1)手册。
阅读(1531) | 评论(0) | 转发(0) |