名前

rmt - リモートの磁気テープサーバー

書式

rmt

説明

Rmt は、tar(1), cpio(1) などのバックアップユーティリティーを利用したファイルやデバイスの処理を、リモートからアクセスする機能を提供します。 普通リモートマシンに対しては rsh(1) または ssh(1) を利用して実現します。 ログイン名を指定して別ユーザーを用いることもできます。

呼び出しを行うプログラムが rmt とやり取りをする際には、標準入力に対してリクエストを送信し、その結果を標準出力から読み取ります。 送信する要求は、要求を表す英字の次に (必要があれば) 引数が続き、最後に改行文字により構成されます。 追加データがある場合は、その改行文字の次に送信されます。 処理が成功すると rmt は以下を返します。

Anumber\n

上の number は 10 進数のリターンコードを ASCII 表現したものです。 追加の情報はこの行の次に返されます。 エラー発生時には、以下のレスポンスが返されます。

Eerrno\nerror-message\n

ここで errno はシステムエラーコードを表すもので、 errno(3) に説明されています。 error-message はエラー内容を 1 行にわかりやすく示したもので、 perror(3) を用いて出力されています。

利用できるコマンドとレスポンスの種類については、後述するセクションにおいて説明しています。

コマンド

Odevice\nflags\n

指定された flags を使って device をオープンします。デバイスがすでにオープンされていた場合は、一度クローズしてから新たにオープンされます。

引数

device

オープンするデバイス名。

flags

open(2) に対するフラグ。 10 進数値、または fcntl.h に定義された O_* 定数 (先頭の O_ は省略される場合があります)。 またビット表現や (| を利用して) 以下のようにこれらを合わせた数値指定もできます。

576
64|512
CREAT|TRUNC

さらに指定を組み合わせることもできます。 たとえば 10 進数によるモードに、そのシンボリックな表現を付け加えるような場合です。 その場合は、シンボリック表現が優先されます。

返信 (reply)

成功時には A0\n を返します。

拡張

BSD バージョンでは flags に 10 進数のみ指定可能です。

C[device]\n

現在オープンしているデバイスをクロースします。

引数


引数はすべて無視されます。

返信 (reply)


成功時には A0\n を返します。

Lwhence\noffset\n

指定されたパラメーターを使って、現在オープンしているデバイスに対して lseek(2) を実行します。

引数
whence

オフセットをどこからにするか。 指定可能な値は以下です:

	0, SET, SEEK_SET	ファイル先頭からシーク
	1, CUR, SEEK_CUR	現在位置からシーク
	2, END, SEEK_END	ファイル終端からシーク
返信 (reply)


成功時には Aoffset\n を返します。 offset は新たなオフセット値になります。

拡張

BSD バージョンは whence に対して 0,1,2 のみ指定可能です。

Rcount\n


現在のデバイスから count バイト分のデータを読み込みます。

引数
count

読み込みを行うバイト数。

返信 (reply)


成功時には以下を返します。

Ardcount\n

この後ろに、デバイスから読み取った rdcount バイト分のデータが続きます。

Wcount\n

現在のデバイスにデータを書き込みます。 このコマンドの後ろに、count バイト分の入力データを続けます。

引数
count

書き込みを行うバイト数。

返信 (reply)


成功時には Awrcount\n を返します。 ここで wrcount は、実際に書き込みを行ったバイト数です。

Iopcode\ncount\n

指定されたパラメーターを用いて MTIOCOP ioctl(2) コマンドを実行します。

引数
opcode

MTIOCOP オペレーションコード。

count

mt_count

返信 (reply)


成功時には A0\n を返します。

S\n

現在オープンしているデバイスのステータスを返します。 これは MTIOCGET ioctl(2) を呼び出して得ています。

引数


なし。

返信 (reply)


成功時は Acount\n と、その後に count バイト分のデータが続きます。

関連項目

tar(1)

バグ

このユーティリティーを汎用目的のリモートファイルアクセスツールとして利用することはお勧めしません。

バグ報告

バグ報告は <bug-tar@gnu.org> までお願いします。

開発経緯

rmt コマンドは 4.2BSD において登場しました。 GNU rmt は BSD の仕様に基づいて一から書き起こされました。

著作権

Copyright © 2013, 2018 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.