小型多卷磁带库综合使用手册

mt ( /usr/sbin/mt )
说明:磁带控制(magnetic tape control), mt传送命令到磁带驱动器.如果磁带名没有指定,环境变量磁带被使用.如果磁带不存在, mt使用设备 /dev/rmt/0n
 
命令格式:mt [ -f tapename ]  command ...  [ count ]
选项:-f tanename   指定原始磁带设备
操作:
fsf 向前空间越过计数EOF标记,磁带的位置在第一个文件的数据块
fsr 向前空前越过计数纪录
bsf 反向空间越过计数EOF标记,磁带位置在磁带开始部分的EOF标记

常用命令:
rewind
倒带
offline, rewoffl
倒带并且,如果适当的,通过卸载磁带把驱动器部件off-line。
Status
列出关于磁带部件的状态信息
erase
擦除整个磁带。
 
 
mtx
说明:控制SCSI介质转换设备(control SCSI media changer devices), 控制单一或者多个SCSI介质转换器例如tape changers(磁带转换器) autoloaders(自动装填器), tape libraries(磁带库)或者optical media jukeboxes(光盘库). http://www.sunfreeware.com
        可以应付巨大的介质库(超过一百卷)
        支持多个驱动器,例如美国Exabyte220 dual磁带库
        支持’invert’位,对于光盘库需要为了翻转他们的介质
        支持’eepos’位对于那些需要扩展/缩回他们的导入/导出盘
        现在支持import/export原理
        报告卷标签(bar codes)并且“交替卷标签”(无论那些怎样!)对于磁带库支持他们
        现在可以运行在Solaris8上
        已经实现SCSI操作的分离输出到一个库,所以你可以创建你自己的”C”程序来直接使用SCSI介质转换器
 
命令格式:mtx [-f <scsi-generic-device>] [nobarcode] [invert] [noattach] command [ command ... ]
 
常用命令参数:
--version  
报告mtx版本号
例如:
 # ./mtx --version
mtx version 1.2.17rel
 
inquiry
报告产品类型(Medium Changer, Tape Drive, etc.),厂商ID,产品ID,版本和是否使用Attached Changer API(一些磁带驱动器使用这个胜过报告一个Medium Changer在一个分开的LUN或者SCSI地址)
例如:
 # ./mtx -f /dev/scsi/changer/c1t125d19 inquiry
Product Type: Medium Changer
Vendor ID: 'HP      '
Product ID: 'C5713A          '
Revision: 'H004'
Attached Changer: No
 
status
报告多少驱动器和存储元件被包含在驱动器里面,对于每个驱动器,报告是否它有介质加载里面,假如这样的话,从那些存储插槽的介质引起。对于每个存储插槽,报告是否它是空的或者满的,并且如果media changer 有一个bar code,MIC reader,或者某些其他独特的识别办法介质没有加载它到驱动器里面,这个报告volume tag和/或者轮流的volume tag对于每一片介质。由于历史的原因驱动器被编号从0开始,存储插槽被编号从1开始
例如:
# ./mtx -f /dev/scsi/changer/c1t125d19 status
   Storage Changer /dev/scsi/changer/c1t125d19:1 Drives, 6 Slots ( 0 Import/Export )
Data Transfer Element 0: Empty
      Storage Element 1:Full
      Storage Element 2:Full
      Storage Element 3:Empty
      Storage Element 4:Full
      Storage Element 5:Full
      Storage Element 6:Empty
 
load <slotnum> [ <drivenum> ]
加载介质从插槽 <slotnum> 到驱动器 <drivenum> .Drive 0被假定为如果驱动器编号被忽略时
例如:
#./mtx -f /dev/scsi/changer/c1t125d19 load 1
查看:
#./mtx -f /dev/scsi/changer/c1t125d19 status
   Storage Changer /dev/scsi/changer/c1t125d19:1 Drives, 6 Slots ( 0 Import/Export )
Data Transfer Element 0:Full (Storage Element 1 Loaded)
       Storage Element 1:Empty
       Storage Element 2:Full
       Storage Element 3:Empty
       Storage Element 4:Full
       Storage Element 5:Full
                 Storage Element 6:Empty
 
unload [<slotnum>] [ <drivenum> ]
卸载介质从驱动器 <drivenum> 到插槽 <slotnum>.如果 <drivenum> 被省略,还原到驱动器0.如果<slotnum>被忽略,还原到插槽到那个驱动器被加载.注意当前没有办法来表示卸载驱动器1的介质到它来自于的插槽。除了到明确的使用插槽编号作为目的地
例如:
#./mtx -f /dev/scsi/changer/c1t125d19 unload 
 
last [<drivenum>]
加载驱动器<drivenum>从最后插槽在介质转换器里。卸载驱动器如果已经有介质在里面。
 
next [<drivenum>]
卸载驱动器并且按顺序加载下一个磁带。如果驱动器被空置,加载第一个磁带到驱动器里。

 

备份
常用:tar  ufsdump
命令:tar ( /usr/sbin/tar )
一个tarfile通常是一个磁带,但它可能是任何文件。如果数据总量超过了一个磁带,你就需要使用一个不同的磁带命令,因为tar命令不可以跨多个卷。 
1. 下例显示如果从硬盘拷贝数据到磁带 
# tar cvf /dev/rmt/0 /work 
参数: 
c ----创建tar文件(在本例中写入到磁带) 
v ----显示它所拷贝的每个文件的信息(详细模式) 
f ----指定源设备名,本例中为/dev/rmt/0 
x ----表示从tar文件中扩展文件
 
2. 下例显示如何从磁带中拷贝文件到硬盘 
# cd /tmp 
# tar xvf /dev/rmt/0n 
 
------------------------------------------------------------------------- 
补充tar 
b 指定在每一次读取和写入操作中使用的磁带块的号码 
h 归档通过符号链接访问的文件 
i 在档案的创建过程中忽略校验和错误 
k 指定挡案大小(千字节),如果档案大于这个大小就分拆 
o 将所有档案文件的用户和组所有关系修改为当前所有者
 
3. 查看磁带上面的文件
# tar  tvf  /dev/rmt/0n
 
命令:ufsdump ( /usr/sbin/ufsdump )
这个命令可以从一个硬盘拷贝一个文件系统或目录到磁带。它被设定为备份命令,支持多个卷及增量备份。注意一下,这里,所有的文件必须是同一个文件系统的一部分或在一个分区,而且你必须是superuser 
命令格式:
ufsdump options [ arguments ] filesystem_name
1. 将所有位于:/dev/rdsk/c0t3d0s0下的文件拷贝到一个称为:/dev/rmt/0的dump文件 
# ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t3d0s0 
0 ----表示dump的级别。级别0拷贝全部的文件系统到磁带中,有效的级别为0---9, 1---9执行的是增量备份,只会拷贝在当前时间后改变的文件。 
u ----表示如果成功的话,则对文件:/etc/dumpdates中的dump记录使用时间戳做一次更新 
f ----指定dump文件(逻辑设备名或磁带设备)。f参数后,必须要跟随一个文件名,在本例中是:/dev/rmt/0 /dev/rdsk/c0t3d0s0包含你想要将文件写入磁带的源名字。
etc/dumpdates文件
/etc/dumpdates文件的每行显示文件系统的备份,备份的级别,和备份的日期,时间。
# cat /etc/dumpdates
当执行增长备份后,ufsdump命令查阅/etc/dumpdates去查找最近的,低级别的备份。然后拷贝所有被改变的和添加的文件到备份媒体。 备份完成后,一个新的条目,描述备份已经完成,替换上次那个级别的条目。 
用户可以通过/etc/dumpdates文件决定备份时候执行。如果因为备份设备的损坏造成备份失败,这个就是特别重要的了,他将不能记录到/etc/dumpdates中去。
 
    命令:ufsrestore ( /usr/sbin/ufsrestore )
这个命令从一个磁带拷贝文件系统到一个硬盘。它只能拷贝由ufsdump创建的文件。 
命令格式:
ufsrestore options [ arguments ] [ filesystem ]
ufsrestore options [ arguments ] [ filesystem ... ]
它必须使用以下的三个参数中的一个: 
i ----(交互)从介质中读取目录信息后,ufsrestore调用一个交互式接口允许你浏览dump文件的层次结构,并选择文件进行扩展 
r ----(递归)将介质中的全部内容恢复到当前目录(它将是文件系统中的顶级),为了完整的恢复一个文件系统,要使用这个参数来恢复级别为0的dump,并再次恢复每个增量dump。 
t ----(内容列表)提供磁带中的所有文件列表 
x ----只恢复在命令行上的文件名所示的文件 
f ----(dump文件)指定从哪里恢复dump文件。如果dump文件没有被指定,那么,ufsrestore将使用 /dev/rmt/0 
v ----(详细模式)显示从磁带中读取的路径名
-----------------------------------------------------------------------------------------
 
1: check tape  ( 为了确定tape 能够正常运作)
# mt rewind
# mt status  ( mt –f /dev/rmt/0n  status )
Archive Python 4mm Helical Scan tape drive:
  sense key(0x0)= No Additional Sense   residual= 0   retries= 0
   file no= 0   block no= 0
 
2: check tape 内容  ( 确定tape 没有损坏)
# mt rewind
 # ufsrestore  i
ufsrestore > ls   (看内容 )
.:
 adm/          etc/          mail.org/     preserve/     tmp/
 audit/        http/         named/        sadm/         uucp/
 cron/         log/          news/         saf/          yp/
 dhcp/         lost+found/   nis/          snmp/
 dmi/          lp/           ntp/          spool/
 dt/           mail          opt/          statmon/
ufsrestore > quit  ( 跳出 )
 
( mt  fsf  1    (到 tape no 2 的位置  /usr )
( mt  fsf  2    (到 tape no 3 的位置  /var )
( mt  fsf  3    (到 tape no 4 的位置  /opt )
( mt  fsf  4    (到 tape no 5 的位置  /data)
 
fullbackup.sh  (内容)
     mt rewind
     ufsdump 0uf /dev/rmt/0n /
     ufsdump 0uf /dev/rmt/0n /usr
     ufsdump 0uf /dev/rmt/0n /opt
     ufsdump 0uf /dev/rmt/0n /var
     ufsdump 0uf /dev/rmt/0n /data

 

 

2: 备份程序  / fullbackup.sh
   复原程序  /fullrestore.sh
   fullbackup.sh 内容
      mt rewind
      /usr/sbin/ufsdump 0uf /dev/rmt/0n /
      /usr/sbin/ufsdump 0uf /dev/rmt/0n /usr
      /usr/sbin/ufsdump 0uf /dev/rmt/0n /opt
      /usr/sbin/ufsdump 0uf /dev/rmt/0n /var
      /sur/sbin/ufsdump 0uf /dev/rmt/0n /data
 
     fullrestore.sh 内容
         mt rewind
         cd /
         /usr/sbin/ufsrestore rvf /dev/rmt/0n
         cd /usr
         /usr/sbin/ufsrestore rvf /dev/rmt/0n
         cd /opt
         /usr/sbin/ufsrestore rvf /dev/rmt/0n
         cd /var
         /usr/sbin/ufsrestore rvf /dev/rmt/0n
         cd /data
         /usr/sbin/ufsrestore rvf /dev/rmt/0n
 
( 备份或复原程序 是依照系统vfstab 内容而产生,若程序无法执行时,请依内容一行一行去执行。 ) 
 
 
运作方式 :
 1 > 手动执行  /fullbackup.sh   ( or fullrestore.sh )
 
 2 >  crontabe     ( 设定特定时间执行 )
   #ident  "@(#)root       1.14    97/03/31 SMI"   /* SVr4.0 1.1.3.1       */
#
10 3 * * 0,4 /etc/cron.d/logchecker
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
20 3 * * *  /fulldump.sh
  
3:如何恢复root(/)文件系统
下面描述如何恢复/(root)文件系统到启动磁盘c0t0d0s0上
1.插入Solaris 8 Software CD 1 of 2,并且从光盘启动进入单用户模式
ok boot cdrom -s
2.建立新文件系统结构
# newfs /dev/rdsk/c0t0d0s0
3.装配文件系统到一个空装配点/a,并且改变到这个目录
# mount /dev/dsk/c0t0d0s0 /a
# cd /a
4.从备份磁带恢复/(root)文件系统
# ufsrestore rf /dev/rmt/0
5.删除restoresymtable文件
# rm restoresymtable
6.在扇区1-15安装启动块bootblk
# cd /usr/platform/'uname -m'/lib/fs/ufs
# installboot bootblk /dev/rdsk/c0t0d0s0
7.卸载新文件系统
# cd /
# umount /a
8.使用fsck命令检查恢复的文件系统
# fsck /dev/rdsk/c0t0d0s0
9.重新启动系统
# init 6
10. 执行一个完整的文件系统备份
# ufsdump 0uf /dev/rmt/0 dev/rdsk/c0t0d0s0 
  
4: 如何还原单一文件系统(files system) 
( 请先check  fullbackup.sh 内容,假设要复原 /var ,由于/var 是第4段区域 , rewind 回到基点再 fsf 3 下移3 区域 。  )
 
 # cd var
 # mt rewind
 # mt fsf 3         
 # ufsrestore rvf /dev/rmt/0n
extract file ./tmp/wsconAAAMPfAo_:0.0
extract file ./tmp/wsconAAA0Q0dBR:0.0
extract file ./tmp/wsconAAA0nsI7A:0.0
extract file ./tmp/wsconAAA0cPjUV:0.0
extract file ./named/named.boot
extract file ./named/named.cache
extract file ./named/named.hosts
extract file ./named/named.local
extract file ./named/named.rev
extract file ./http/sws_server/websites/default_site/logs/http_log.clf.2Add links
Set directory mode, owner, and times.
Check the symbol table.
Check pointing the restore
 
  
 5:如何select 部份档案还原 (可以还原目录)
 ( 假设要复原 /var/adm/messages )
 # mt rewind
 # mt fsf 2 (  回到备份no 3 的位置   )
 # ufsrestore -i
ufsrestore > ls
.:
 adm/          etc/          mail.org/     preserve/     tmp/
 audit/        http/         named/        sadm/         uucp/
 cron/         log/          news/         saf/          yp/
 dhcp/         lost+found/   nis/          snmp/
 dmi/          lp/           ntp/          spool/
 dt/           mail          opt/          statmon/
 
ufsrestore > cd adm
ufsrestore > ls
./adm:
 acct/        log/         messages.1   passwd/      sulog        vold.log
 aculog       messages     messages.2   sa/          utmp         wtmp
 lastlog      messages.0   messages.3   spellhist    utmpx        wtmpx
 
ufsrestore > add messages
ufsrestore > extract
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #: 1
set owner/mode for '.'? [yn] y
ufsrestore > quit

posted @ 2013-10-23 21:04  在于思考  阅读(673)  评论(0编辑  收藏  举报