rmt
—
remote magtape protocol module
The rmt
utility is used by the remote dump and restore
programs in manipulating a magnetic tape drive through an interprocess
communication connection. It is normally started up with an
rcmd(3)
call.
The rmt
utility accepts requests specific
to the manipulation of magnetic tapes, performs the commands, then responds
with a status indication. All responses are in ASCII and in one of two
forms. Successful commands have responses of:
Anumber\n
Number is an ASCII representation of a
decimal number. Unsuccessful commands are responded to with:
Eerror-number
\nerror-message\n
Error-number is one of the possible error
numbers described in
intro(2)
and error-message is the corresponding error string as
printed from a call to
perror(3).
The protocol is comprised of the following commands, which are sent as
indicated - no spaces are supplied between the command and its arguments, or
between its arguments, and ‘\n
’
indicates that a newline should be supplied:
- Odevice\nmode\n
- Open the specified device using the indicated
mode. Device is a full
pathname and mode is an ASCII representation of a
decimal number suitable for passing to
open(2).
If a device had already been opened, it is closed before a new open is
performed.
- Cdevice\n
- Close the currently open device. The device
specified is ignored.
- Lwhence\noffset\n
- Perform an
lseek(2)
operation using the specified parameters. The response value is that
returned from the
lseek(2)
call.
- Wcount\n
- Write data onto the open device. The
rmt
utility
reads count bytes from the connection, aborting if a
premature end-of-file is encountered. The response value is that returned
from the
write(2)
call.
- Rcount\n
- Read count bytes of data from the open device. If
count exceeds the size of the data buffer (10
kilobytes), it is truncated to the data buffer size. The
rmt
utility then performs the requested
read(2)
and responds with
Acount-read\n
if the read was successful; otherwise an error in the standard format is
returned. If the read was successful, the data read is then sent.
- Ioperation\ncount\n
- Perform a
MTIOCOP
ioctl(2)
command using the specified parameters. The parameters are interpreted as
the ASCII representations of the decimal values to place in the
mt_op and mt_count fields of
the structure used in the
ioctl(2)
call. The return value is the count parameter when
the operation is successful.
- S
- Return the status of the open device, as obtained with a
MTIOCGET
ioctl(2)
call. If the operation was successful, an ``ack'' is sent with the size of
the status buffer, then the status buffer is sent (in binary).
Any other command causes rmt
to exit.
All responses are of the form described above.
The rmt
utility appeared in
4.2BSD.
People should be discouraged from using this for a remote file access protocol.