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。
子命令
| 项 | 描述 |
|---|---|
| eof 或 weof | 将由 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 | 打开磁带机,从标准输入中读数据,或向磁带机写数据。 |
提示: 当指定 read 或 write 子命令时, tctl 命令打开磁带设备并设置由 -b 或 -n 标志指定的磁带块大小。 如果两个都未指定,那么 tctl 命令使用缺省块大小,其大小为 512 个字节。
限制:
- 仅当使用 read 和 write 子命令时才应用 -b、-n、 -p 和 -v 标志。
- 仅当使用 read 子命令时才应用 -B 标志。
标志
| 项 | 描述 |
|---|---|
| -b BlockSize | 指定读写磁带设备缓冲区的大小(字节),在没有指定 -n 标志时,也要指定磁带块的大小。 如果块大小为 0 字节,那么使用可变长度块,且磁带缓冲区的大小为 32,768 字节。 如果 -b 标志没指定,那么缺省块大小和磁带缓冲区的大小均为 512 字节。 |
| -B | 每次读磁带时,向缓冲器写数据。 当读可变长度记录(该记录大小不定,也没有规律)时,设定这个标志。 |
| -f 设备 | 指定磁带设备。 |
| -p BufferSize | 指定在标准输入输出上所使用的缓冲区大小。 缺省缓冲区大小是 32,768 字节。 BufferSize 值必须是磁带块大小的乘积。 |
| -v | 详细。 向标准错误显示每个读和写的大小。 |
| -n | 当用 read 或 write 子命令来读写磁带时,指定可变长度记录。 |
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功完成。 |
| > 0 | 发生错误。 |
示例
- 要倒带 rmt1 磁带设备,请输入:
- 要在缺省磁带设备上向前移动两个文件标记,请输入:tctl fsf 2
- 要在 /dev/rmt0.6中的磁带上写入两个文件结束符标记,请输入:
- 要读取格式化为 80 字节块的磁带设备并将结果放入文件中,请输入:
- 要从格式化为 80 字节块的磁带设备读取变长记录并将结果放入文件中,请输入:
- 要使用 1024 字节的缓冲区大小将变长记录写入磁带设备,请输入:
- 要写入 512 字节块中的磁带设备并将 5120 字节的缓冲区用于标准输入,请输入:
注:1/4 英寸(QIC)磁带设备的有效块大小只有 0 字节和 512 字节。
- 要覆盖 8 mm 磁带上的多个备份中的一个备份,请将该磁带放在备份文件的开头,并发出以下命令:
第一个命令移动磁带到文件标记的磁带开始端。 第二个命令重写文件标记,因为在扩展文件标记前允许写。 在写磁头到达前,驱动器的删除磁头删除数据,于是 write 子例程可以在磁带上覆盖已有数据。 但是,所有旧的数据丢失,因为文件标记无意义。
注: write 子例程不能覆盖短文件标记,除非空白磁带跟在短文件标记之后。 如在该例中,覆盖已存在的数据时,磁带必须用扩展文件标记写数据(这一点通过 SMIT 接口指定)。
文件
| 项 | 描述 |
|---|---|
| /dev/rmt n | 指定原始流磁带接口。 |
| /usr/bin/tctl | 包含 tctl 命令。 |