tctl 命令

用途

将子命令提供给一个流磁带设备。

语法

tctl-f 设备 ] [  埃奥 | 韦沃 | 夫斯夫 | 布斯夫 | 夫斯尔 | 布斯尔 | 倒带 | 脱机 雷沃夫尔 | 擦除 | 重新拉紧 | 复位 | 状态 ] [ 计数 ]

tctl [ -b BlockSize ] [ -f Device ] [ -p BufferSize ] [ -v ] [ -n ] [ -B ] { read | write }

描述

tctl 命令将子命令提供给一个流磁带设备。 如果未使用 -f 标志指定 Device 变量,那么将使用 TAPE 环境变量。 如果环境变量不存在,那么 tctl 命令使用 /dev/rmt0.1 设备。 (当 tctl 命令提供 status 子命令时,缺省设备是 /dev/rmt0。) 该 Device 变量必须指定一个原始(非块)磁带设备。 Count 参数指定文件结束标记数、文件标记数、或记录数。 如果 Count 参数没指定,那么默认值为 1。

子命令

描述
eofweof 将由 Count 参数指定的文件结束符数目写在磁带当前位置上。 在 8 毫米磁带设备上,文件结束符可写在三个地方:
  • 空带前
  • 扩展文件标记前
  • 在磁带开始标记处

在 9 磁道磁带机上,磁带结束符可写在磁带任何位置上。 但是,该子命令不支持重写单个块数据。

ff 将磁带向前移动由 Count 参数指定的文件标记数目,位置标记放在文件标记的磁带结束符(EOT)侧。
Bsf 将磁带向后移动由 Count 参数指定的文件标记数目,位置标记放在文件标记的磁带开始符(BOT)侧。
  如果 bsf 子命令移动磁带到开始处,那么磁带倒带,且 tctl 命令返回 EIO
fsr 将磁带向前移动由 Count 参数指定的记录数。
Bsr 将磁带向后移动由 Count 参数指定的记录数目。
REWIND 将磁带倒带。 忽略 Count 参数。
offline rewoffl 将磁带倒带,并使磁带机脱机。 这将在适当的时候卸装磁带。 在设备再次使用前,磁带必须重新插入。
擦除 (erase) 删除磁带上的所有内容,并将它倒带。
READ 从指定磁带设备读数据(使用指定的块大小)直到内部缓冲器满为止,然后向标准输出写数据,继续用这种方式读写,直到遇到文件结束符为止。
重置 发一个总线设备复位信号(BDR)给磁带设备。 只有设备不能打开并且不忙时才发送 BDR。
重新拉紧 移动磁带到开始处,然后到结束处,再回到磁带开始处。 如果在恢复期间,有额外的读错误时,您应该运行 retension 子命令。 如果您将磁带暴露在恶劣环境中,那么在向磁带写数据时,您应该运行 retension 子命令。 8 毫米磁带机不会响应这个命令。
状态 显示有关指定的磁带设备的状态信息。
WRITE 打开磁带机,从标准输入中读数据,或向磁带机写数据。
提示: 当指定 readwrite 子命令时, tctl 命令打开磁带设备并设置由 -b-n 标志指定的磁带块大小。 如果两个都未指定,那么 tctl 命令使用缺省块大小,其大小为 512 个字节。
限制:
  • 仅当使用 readwrite 子命令时才应用 -b-n -p-v 标志。
  • 仅当使用 read 子命令时才应用 -B 标志。

标志

描述
-b BlockSize 指定读写磁带设备缓冲区的大小(字节),在没有指定 -n 标志时,也要指定磁带块的大小。 如果块大小为 0 字节,那么使用可变长度块,且磁带缓冲区的大小为 32,768 字节。 如果 -b 标志没指定,那么缺省块大小和磁带缓冲区的大小均为 512 字节。
-B 每次读磁带时,向缓冲器写数据。 当读可变长度记录(该记录大小不定,也没有规律)时,设定这个标志。
-f 设备 指定磁带设备。
-p BufferSize 指定在标准输入输出上所使用的缓冲区大小。 缺省缓冲区大小是 32,768 字节。 BufferSize 值必须是磁带块大小的乘积。
-v 详细。 向标准错误显示每个读和写的大小。
-n 当用 readwrite 子命令来读写磁带时,指定可变长度记录。

退出状态

本命令返回以下退出值:

描述
重大安全事件数量 成功完成。
> 0 发生错误。

示例

  1. 要倒带 rmt1 磁带设备,请输入:
    tctl  -f /dev/rmt1  rewind
  2. 要在缺省磁带设备上向前移动两个文件标记,请输入:
    tctl  fsf 2
  3. 要在 /dev/rmt0.6中的磁带上写入两个文件结束符标记,请输入:
    tctl  -f /dev/rmt0.6  weof 2
  4. 要读取格式化为 80 字节块的磁带设备并将结果放入文件中,请输入:
    tctl -b 80  read > file
  5. 要从格式化为 80 字节块的磁带设备读取变长记录并将结果放入文件中,请输入:
    tctl -b 80  -n read > file
  6. 要使用 1024 字节的缓冲区大小将变长记录写入磁带设备,请输入:
    cat file | tctl -b 1024 -n -f/dev/rmt1 write
  7. 要写入 512 字节块中的磁带设备并将 5120 字节的缓冲区用于标准输入,请输入:
    cat file | tctl -v -f /dev/rmt1 -p 5120 -b 512 write

    注:1/4 英寸(QIC)磁带设备的有效块大小只有 0 字节和 512 字节。

  8. 要覆盖 8 mm 磁带上的多个备份中的一个备份,请将该磁带放在备份文件的开头,并发出以下命令:
    tctl bsf 1

    tctl eof 1

第一个命令移动磁带到文件标记的磁带开始端。 第二个命令重写文件标记,因为在扩展文件标记前允许写。 在写磁头到达前,驱动器的删除磁头删除数据,于是 write 子例程可以在磁带上覆盖已有数据。 但是,所有旧的数据丢失,因为文件标记无意义。

注: write 子例程不能覆盖短文件标记,除非空白磁带跟在短文件标记之后。 如在该例中,覆盖已存在的数据时,磁带必须用扩展文件标记写数据(这一点通过 SMIT 接口指定)。

文件

描述
/dev/rmt n 指定原始流磁带接口。
/usr/bin/tctl 包含 tctl 命令。