SSH Tectia

sftpg3

sftpg3 — SecureShell ファイル転送クライアント - Generation 3

書式

sftpg3 [options...]
[ profile | [user@] host [#port] ]

説明

sftpg3 (Windows では sftpg3.exe) は FTP に似たクライアントであり、ネットワーク経由でのファイル転送に使用できます。sftpg3 は、SecureShell バージョン 2 プロトコルを使用してセキュアな転送を提供するために ssh-broker-g3 を起動します。認証のためにパスワードまたはパスフレーズが必要な場合は、ssh-broker-g3 がそれらの入力を求めます。sftpg3 は、ssh-broker-config.xml ファイルで指定された設定を使用します。

ただし、sftpg3 は FTP クライアントの代替となることを想定していません。セキュアなファイル転送機能を実装するアプリケーションであり、一般的な FTP アプリケーションにあるほとんどの機能を備えています。

sftpg3 を使用してリモート ホストに接続するには、ssh-broker-config.xml ファイルで定義された接続プロファイル (profile) の名前、あるいはリモート ホストの IP アドレスまたは DNS 名を指定します。リモートのユーザ名と SecureShell サーバのポート ( [user@] host [#port]) もオプションで指定できます。ユーザ名を指定しない場合は、ローカル ユーザ名が使用されます。ポートを指定しない場合、デフォルトの SecureShell ポートである 22 番が使用されます。リモート ホストでは、sftp-server サブシステムが有効な状態で SecureShell バージョン 2 サーバを実行している必要があります。SSH Tectia Server では、sftp-server がデフォルトで有効になっています。

sftpg3 コマンドで接続プロファイルを定義するときは、SSH Tectia Client による引数の解釈が引数の形式によって変化することに注意してください。指定された属性値に @ 記号が含まれる場合、SSH Tectia Client は常に、その値をプロファイルではなく <username@hostname> であると解釈します。

また、プロファイル名にピリオドが含まれる場合 (host.x.example.com など)、コマンドラインではピリオドをエスケープする必要があります。UNIX では、host\.x\.example\.com と入力します。Windows では、host˜.x˜.example˜.com と入力します。そのように入力しないと、プロファイル名がホスト名として解釈され、現在のローカル ユーザ名がログインに使用されます。

ファイル名に含まれる特殊文字について、詳しくはファイル名のサポート項を参照してください。

オプション

以下のオプションが利用可能です。

-b buffer_size_bytes

1 回の読み取り/書き込み要求での最大バッファ サイズを定義します (デフォルトは 32768 バイト)。

-B batch_file

バッチ モードを使用し、SFTP コマンドを batch_file から実行します。ファイルには使用可能な任意の SFTP コマンドを記述できます。コマンドの説明については、コマンド項を参照してください。

バッチ モードを使用するには、事前にサーバのホスト鍵をクライアント上に保存し、ユーザ認証の方法として非対話的な方法 (ホスト ベースの認証、パスフレーズを使用しない公開鍵認証など) を設定しておく必要があります。

-C

現在の接続で圧縮を無効にします。

+C

この接続について zlib 圧縮を有効にします。

-c, --ciphers=LIST

許可された暗号を設定し、サーバに提供します。暗号名のカンマ区切りリストを指定します。たとえば以下のようになります。

--ciphers seed-cbc@ssh.com,aes256-cbc

現在サポートされている暗号名を確認するには、値として help と入力します。

-D, --debug=LEVEL

デバッグ レベルを設定します。LEVEL は 0~99 の数値で、99 はすべてのデバッグ情報を表示することを指定します。これはコマンドラインの最初の引数にしてください。

[注意]注意

オプション -D は UNIX のみに適用されます。Windows では、このコマンドライン ツールの代わりに Connection Broker のデバッグ オプション -D, -l を使用します。

[注意]注意

デバッグ レベルを設定できるのは、sftpg3 コマンドが Connection Broker を起動するときだけです。Connection Broker がすでに実行されている場合、このオプションの効果はありません。

-i FILE

identification ファイルに定義された秘密鍵を公開鍵認証に使用することを定義します。

-K, --identity-key-file=FILE

指定した秘密鍵の鍵ファイルまたは証明書をユーザ認証に使用することを定義します。鍵ファイルへのパスはコマンドで指定します。

ファイルが秘密鍵である場合は、その鍵が読み取られ、Connection Broker のキー ストアですでに認識されている鍵と比較されます。鍵が既知のものでない場合は、復号化されてキー ストアに一時的に追加されます。ファイルが証明書であり、一致する秘密鍵が Connection Broker にとって既知の場合は、その鍵が使用されます。コマンドラインで複数の -K オプションを使用することで、証明書と秘密鍵の両方を指定できます。

-N max_requests

読み取り/書き込み要求の最大同時送信数を定義します (デフォルトは 10)。

-P port

リモート マシン上のこの SecureShell ポートに接続します (デフォルトは 22)。

-v, --verbose

詳細モードを使用します (-D 2 と同じ)。

+w, --try-empty-password

空のパスワードを試行します。

--allowed-authentications=METHODS

ユーザ認証で使用を許可する認証方法を定義します。方法のカンマ区切りリストを指定します。現在サポートされている認証方法を確認するには、値として help と入力します。

--compressions=METHODS

許可された圧縮方法を設定し、サーバに提供します。方法のカンマ区切りリストを指定します。

現在サポートされている圧縮方法名を確認するには、値として help と入力します。

--exclusive

接続試行の度に新しい接続を開くことを定義します。このオプションを指定しない場合、Connection Broker は最近閉じられた接続を再利用できます。

--fips

FIPS 暗号化ライブラリを使用してチェックサムを実行します。

--identity=ID

ユーザ認証に秘密鍵の ID が使用されることを定義します。ID は Connection Broker 内部の 10 進の鍵番号、鍵ハッシュ、鍵ファイル名のいずれかです。

--identity-key-hash=ID

対応する公開鍵ハッシュとともにユーザ認証に使用する秘密鍵を定義します。

--identity-key-id=ID

Connection Broker 内部の 10 進の鍵番号をユーザ認証で使用することを定義します。

--keep-alive=VALUE

SecureShell サーバにキープアライブ メッセージを送信する頻度を定義します。値は秒単位で入力します。デフォルト値は 0 で、この場合、キープアライブ メッセージは無効になります。

--macs=LIST

許可された MAC を設定し、サーバに提供します。MAC 名のカンマ区切りリストを指定します。たとえば以下のようになります。

--mac hmac-sha1-96,hmac-md5,hmac-md5-96

現在サポートされている MAC 名を確認するには、値として help と入力します。

--password= PASSWORD | file://PASSWORDFILE | extprog://PROGRAM

パスワードまたはパスフレーズ (以下「パスワード」) を要求する認証方法への応答としてクライアントが送信するユーザ パスワードまたはパスフレーズを設定します。これは、パスワード保護された証明書および公開鍵に対しても使用できます。

PASSWORD は、パスワードが保存されたファイルのパスか、パスワードを出力するプログラムまたはスクリプトのパスとして渡すことができます。このオプションに渡す引数としてパスワードを直接入力することもできますが、推奨されません

[警告]警告

コマンドラインでパスワードを指定するのはセキュアな方法ではありません。たとえば、マルチユーザ環境では、コマンドライン上で直接渡されたパスワードをプロセス テーブルから簡単に復元できます。よりセキュアな認証方法を使用することをお勧めします。非対話的なバッチ ジョブでは、パスフレーズを使用しない公開鍵認証、またはホストベースの認証を使用するほうがより安全です。少なくとも、ファイルまたはプログラムを使ってパスワードを渡すようにしてください。

--plugin-path=PATH

プラグインのパスを PATH に設定します。これは FIPS モードでのみ使用されます。

--tcp-connect-timeout=VALUE

SecureShell サーバへの TCP 接続を確立するときのタイムアウト時間を秒単位で定義します。タイムアウト値は正の数で入力します。値を 0 に設定するとこの機能は無効になり、代わりにデフォルトのシステム TCP タイムアウト設定が使用されます。

-V, --version

プログラムのバージョンを表示して終了します。

-h, --help

コマンドライン オプションの簡単な概要を表示して終了します。

コマンド

sftpg3 でコマンドを受け付ける準備ができると、プロンプト sftp> が表示されます。続いてユーザは以下の任意のコマンドを入力できます。

! [command] [arguments]

ローカル マシン上で対話型シェルを起動します。command にコマンドを指定した場合、そのコマンドが実行されます。コマンドによっては、オプションの引数を arguments に指定できます。

append [-u, --unlink-source] [--streaming] [--force-lower-case] [--statistics] [--statistics-format] [--progress-display] [--progress-line-format] [--progress-line-interval] srcfile [dstfile]

指定されたローカル ファイルをリモート ファイルに追記します。glob 処理は使用できません。

オプション:

-u, --unlink-source

ファイル転送後に転送元ファイルを削除します。

--streaming [ =yes | no | force | ext ]

サーバでストリーミングがサポートされている場合、ファイル転送にストリーミングを使用します。buffer_size_bytes よりもサイズが小さいファイルについては、ストリーミングを使用した転送を行いません。サイズの小さいファイルに対しては force を使用してください。デフォルトは no です。

z/OS ホストで MVS データセットへの直接アクセスを有効にするには、ext を使用します。他の環境ではサイズの小さいファイルの転送が低速になる可能性があるため、このオプションは、ファイル転送が主としてメインフレームのデータセット転送に使用されるときにのみ使用してください。

チェックサムが計算される場合、ファイル転送ではステージングが使用され、ストリーミングは使用されないため、--streaming=ext オプションを指定する場合は --checksum=no オプションも指定する必要があります。

拡張ストリーミングを有効にする別の方法は、環境変数として SSH_SFTP_STREAMING_MODE=ext および SSH_SFTP_CHECKSUM_MODE=no を定義することです。

--force-lower-case

転送先ファイル名を小文字に変換します。

--statistics--statistics-format--progress-display--progress-line-format、および --progress-line-interval の各オプションの意味は get と同じです。

ascii [-s] [remote_nl_conv] [local_nl_conv]

コマンド ascii は転送モードをアスキーに設定します。

z/OS 上の SSH Tectia と他のホストの間の転送については、これによって自動での ASCII-EBCDIC 変換も有効になります。デフォルトの変換は、コードセット ISO8859-1 と IBM-1047 間の変換です。ファイルは LINE 形式を使用して転送されます。site および lsite コマンドを使用して値を変更できます。

オプション:

-s

現在の改行規則のみを表示します。転送モードをアスキーに設定しません。

remote_nl_conv [local_nl_conv]

リモートおよびローカルの改行規則のヒントを設定します。local_nl_conv オプションはローカル側で機能しますが、通常は正しいローカル改行規則がすでにコンパイルされています。

これらのオプションは下位の転送レイヤに対するヒントにすぎません。このレイヤは、可能であれば常に、サーバによって指定された実際の改行規則の使用を試みます。これらのオプションのいずれかを ask に設定できます。この設定では、sftpg3 は必要なときに新しい改行規則をユーザに問い合わせます。利用可能な規則は dosunix、および mac で、それぞれ \r\n\n、および \r を改行として使用します。

このコマンドは転送モードをアスキーに設定しません。

auto

ファイル転送モードはファイル拡張子に基づいて自動的に選択されます。

binary

ファイルはバイナリ モードで転送されます。

break

バッチ ファイルの実行を中断します。バッチ ファイルの実行は continue コマンドで再開できます。

bye

アプリケーションを終了します。

cd directory

現在のリモート作業ディレクトリを変更します。

chmod [-R] [-f] [-v] OCTAL-MODE [file...]

,

chmod [-R] [-f] [-v] [ugoa] [+-=] [rwxs] [file...]

指定された 1 つまたは複数のファイルの許可属性を、OCTAL-MODE に指定されたビット パターンに設定します。または、[ugoa][+-=][rwxs] に指定されたシンボリック モードに従って許可属性を変更します。1 つのシンボリック モードの組み合わせのみがサポートされています。

オプション:

-R

ファイルおよびディレクトリを再帰的に変更します。

-f

サイレント モードを使用します (エラー メッセージを表示しません)。

-v

詳細モードを使用します (処理されたすべてのファイルを一覧表示します)。

close

リモート接続を閉じます。

continue

中断されたバッチ ファイル実行を再開します。

debug [ disable | no | debuglevel ]

デバッグを有効または無効にします。disable または no を指定すると、デバッグは無効になります。あるいは、コマンドライン オプション -D と同様に、debuglevel にデバッグ レベル文字列を設定します。

digest [-H, --hash] [-o, --offset] [-l, --length] file

ファイル データに対して MD5 または SHA-1 ダイジェストを計算します。

オプション:

-H, --hash= [ md5 | sha1 ]

md5 または sha1 ハッシュ アルゴリズムを使用します (デフォルトは md5)。

-o, --offset=OFFSET

OFFSET で指定されたファイル オフセットから読み取りを開始します。

-l, --length=LENGTH

LENGTH バイトのファイル データを読み取ります。

get [-p, --preserve-attributes] [-u, --unlink-source] [-I, --interactive] [--overwrite] [--checksum] [-W, --whole-file] [--checkpoint] [--streaming] [--force-lower-case] [--prefix=] [--statistics] [--statistics-format] [--progress-display] [--progress-line-format] [--progress-line-interval] [--max-depth=] file...

指定されたファイルをリモート エンドからローカル エンドに転送します。デフォルトでは、ディレクトリとその内容は再帰的にコピーされますが、これは Connection Broker 構成の SFTP 互換モード設定 (ssh-broker-config.xml 内の sftpg3-mode) で変更できます。現在設定されている SFTP 互換モードを表示するには、次のコマンドを実行します。

sftp> help get

現在設定されている互換モードは、get コマンドのヘルプの先頭部分に表示されます。

SFTP 互換モードのオプションは以下の通りです。

tectia

sftpg3 クライアントは、現在のディレクトリとそのすべてのサブディレクトリのファイルを再帰的に転送します。

ftp

get コマンドは sget として実行されます。この場合、このコマンドは単一のファイルを転送し、サブディレクトリはコピーされません。

openssh

指定したディレクトリから通常ファイルとシンボリック リンクのみがコピーされ、サブディレクトリはコピーされません。それ以外に get コマンドの動作に変更はありません。

オプション:

-p, --preserve-attributes

転送元と転送先の両方が UNIX ファイルシステム (z/OS USS を含む) の場合に、ファイルの許可属性とタイムスタンプを保持します。転送元と転送先のいずれかが Windows の場合、タイムスタンプは保持しますが許可属性は保持しません。転送先が z/OS MVS の場合は、どちらも保持しません。

-u, --unlink-source

ファイル転送後に転送元ファイルを削除します。ディレクトリが空になった場合、ディレクトリも削除されます (移動モード)。

-I, --interactive

既存の転送先ファイルを上書きするかどうかをユーザに確認します (バッチ モードでは使用できません)。

--overwrite [ =yes | no ]

既存の転送先ファイルを上書きするかどうかを決定します (デフォルトは yes)。

--checksum [ =yes | no | md5 | sha1 | md5-force | sha1-force | checkpoint ]

ファイル転送を再開できるファイル内のポイントを特定するために、MD5 または SHA-1 チェックサム、あるいは独立したチェックポイント データベースを使用します。buffer_size_bytes よりもサイズが小さいファイルはチェックされません。サイズの小さいファイルに対しては md5-force または sha1-force を使用します (デフォルトは yes で、MD5 チェックサムを使用します)。チェックポイント設定は、サイズの大きなファイルを 1 つずつ転送するときに使用します。

-W, --whole-file

インクリメンタル チェックを試行しません。デフォルトでは (このオプションを指定しない場合)、インクリメンタル チェックが試行されます。このオプションは --checksum オプションとの組み合わせでのみ使用できます。

--checkpoint=s<seconds>

チェックポイント更新が発生するまでの時間間隔 (デフォルトは 10 秒)。このオプションは --checksum=checkpoint のときにのみ使用できます。

--checkpoint=b<bytes>

チェックポイント更新が発生するまでのバイト間隔 (デフォルトは 10 MB)。このオプションは --checksum=checkpoint のときにのみ使用できます。

--streaming [ =yes | no | force | ext ]

サーバでストリーミングがサポートされている場合、ファイル転送にストリーミングを使用します。buffer_size_bytes よりもサイズが小さいファイルについては、ストリーミングを使用した転送を行いません。サイズの小さいファイルに対しては force を使用してください。デフォルトは yes です。

z/OS ホストで MVS データセットへの直接アクセスを有効にするには、ext を使用します。他の環境ではサイズの小さいファイルの転送が低速になる可能性があるため、このオプションは、ファイル転送が主としてメインフレームのデータセット転送に使用されるときにのみ使用してください。

チェックサムが計算される場合、ファイル転送ではステージングが使用され、ストリーミングは使用されないため、--streaming=ext オプションを指定する場合は --checksum=no オプションも指定する必要があります。

拡張ストリーミングを有効にする別の方法は、環境変数として SSH_SFTP_STREAMING_MODE=ext および SSH_SFTP_CHECKSUM_MODE=no を定義することです。

--force-lower-case

転送先ファイル名を小文字に変換します。

--max-depth=VALUE

ディレクトリを再帰的にコピーするかどうかを定義します。以下の値を指定できます。

0 - 無制限の再帰。ディレクトリとその内容は再帰的にコピーされます。

1 - 指定したディレクトリだけからファイルをコピーし、サブディレクトリからはコピーしません。

2 ~ n - 指定した階層数のディレクトリからファイルを再帰的にコピーします。n はシステム固有の最大値を意味します。

このコマンドライン オプションは、Connection Broker 構成の sftpg3-mode エレメントで設定された再帰の深さや、環境変数 SSH_SFTP_CMD_GETPUT_MODE を使用して行われた設定よりも優先します。

--prefix=PREFIX

ファイル転送の間に、PREFIX で指定された接頭辞をファイル名に付加します。ファイルが正常に転送された後で接頭辞は削除されます。

--statistics [ =no | yes | simple | bytes ]

ファイル転送操作の後で表示する統計の形式を選択します。各オプションの意味は以下の通りです。

no - 統計を作成しません。これはデフォルトの設定です。

yes - 詳細な統計を作成します。statistics-format オプションで内容を設定できます。デフォルトの統計内容は以下の通りです。

"Source: %c:%g\r\n"
"Source parameters: %e\r\n"
"Destination: %C:%G\r\n"
"Destination parameters: %E\r\n"
"File size: %s bytes\r\n"
"Transferred: %t bytes\r\n"
"Rate: %RB/s\r\n"
"Start: %xy-%xt-%xd %xh:%xm:%xs\r\n"
"Stop: %Xy-%Xt-%Xd %Xh:%Xm:%Xs\r\n"
"Time: %y\r\n"

simple - 簡潔な 1 行の統計を作成します。statistics-format オプションで内容を設定できます。デフォルトの統計内容は以下の通りです。

"Transferred %t bytes, file: '%f' -> '%F'\r\n"

bytes - 転送済みバイト数を報告する基本的な統計を作成します。statistics-format オプションで内容を設定できます。デフォルトの統計内容は以下の通りです。

"Transferred %t bytes, file: '%f' -> '%F'\r\n"
--statistics-formatFORMAT_STRING

統計の形式と内容を選択します。このオプションは --statistics=yes|simple|bytes のときに使用します。以下の定義を使用して、統計の内容を選択します。

%c  - source connection: user@host#port or profile
%g  - /path/to/source/file
%f  - source file name
%e  - source parameters (file transfer and dataset parameters)
%C  - destination connection: user@host#port or profile
%G  - /path/to/destination/file
%F  - destination file name
%E  - destination parameters (file transfer and dataset parameters)
%s  - file size in bytes
%S  - file size as "XXyB" (B, kiB, MiB or GiB)
%t  - transfer size in bytes
%T  - transfer size as "XXyB" (B, kiB, MiB or GiB)
%p  - transfer percentage
%q  - transfer rate in bit/s
%Q  - transfer rate as "XXyb/s" (b/s, kib/s, Mib/s, Gib/s)
%r  - transfer rate in bytes/s
%R  - transfer rate as "XXyB/s" (B/s, kiB/s, MiB/s, GiB/s)
%D* - current date
%x* - start date
%X* - end date
%y  - elapsed time
%Y  - time remaining
%z  - ETA or TOC, if transfer has finished
%Z  - string "ETA" or "TOC", if transfer has finished

Where * is one of the following:

h - hours (00-23)
m - minutes (00-59)
s - seconds (00-59)
f - milliseconds (0-999)
d - day of the month (1-31)
t - month (1-12)
y - year (1970-)

Other special characters in format strings are:

\n - line feed
\r - carriage return
\t - horizontal tab
\\ - backslash

--progress-display [ =no | bar | line ]

ファイル転送操作中に進行状況を表示する際のモードを選択します。デフォルトは bar で、進行状況バーを表示します。オプション line は、--progress-line-format オプションで行われた設定に従って進行状況の情報を表示します。

--progress-line-format=FORMAT_STRING

進行状況の行に表示する情報を選択します。このオプションは --progress-display=line のときに使用します。以下の定義を使用して、進行状況の行の内容を選択します。

%c  - source connection: user@host#port or profile
%g  - /path/to/source/file
%f  - source file name
%e  - source parameters (file transfer and dataset parameters)
%C  - destination connection: user@host#port or profile
%G  - /path/to/destination/file
%F  - destination file name
%E  - destination parameters (file transfer and dataset parameters)
%s  - file size in bytes
%S  - file size as "XXyB" (B, kiB, MiB or GiB)
%t  - transfer size in bytes
%T  - transfer size as "XXyB" (B, kiB, MiB or GiB)
%p  - transfer percentage
%q  - transfer rate in bit/s
%Q  - transfer rate as "XXyb/s" (b/s, kib/s, Mib/s, Gib/s)
%r  - transfer rate in bytes/s
%R  - transfer rate as "XXyB/s" (B/s, kiB/s, MiB/s, GiB/s)
%D* - current date
%x* - start date
%X* - end date
%y  - elapsed time
%Y  - time remaining
%z  - ETA or TOC, if transfer has finished
%Z  - string "ETA" or "TOC", if transfer has finished

Where * is one of the following:

h - hours (00-23)
m - minutes (00-59)
s - seconds (00-59)
f - milliseconds (0-999)
d - day of the month (1-31)
t - month (1-12)
y - year (1970-)

Other special characters in format strings are:

\n - line feed
\r - carriage return
\t - horizontal tab
\\ - backslash
--progress-line-interval=seconds

行モードで進行状況の情報を更新する頻度を定義します。間隔は秒単位で指定します。デフォルトは 60 秒です。

getext

自動転送モードでアスキー形式になる拡張子を表示します。

lappend [options...] srcfile [dstfile]

append と同じですが、指定されたリモート ファイルをローカル ファイルに追記します。

lcd directory

現在のローカル作業ディレクトリを変更します。

lchmod [-R] [-f] [-v] OCTAL-MODE [file...]

,

lchmod [-R] [-f] [-v] [ugoa] [+-=] [rwxs] [file...]

chmod と同じですが、ローカル ファイルに対して機能します。

lclose

ローカル接続を閉じます。

ldigest [-H, --hash] [-o, --offset] [-l, --length] file

digest と同じですが、ローカル ファイルに対して機能します。

lls [-R] [-l] [-S] [-r] [-p] [-z|+z] [file...]

ls と同じですが、ローカル ファイルに対して機能します。

llsroots

lsroots と同じですが、ローカル ファイルに対して機能します (ローカル側が VShell サーバに対して開かれているとき)。

lmkdir directory

mkdir と同じですが、ローカル ファイルに対して機能します。

lopen hostname | -l

ローカル側をホスト hostname に接続しようと試みます。これに成功した場合、lls およびそれに関連するコマンドはそのホスト上のファイルシステムに対して機能します。

オプション:

-l

ローカル側をローカル ファイルシステムに接続します (サーバを必要としません)。

lpwd

現在のローカル作業ディレクトリの名前を出力します。

lreadlink path

readlink と同じですが、ローカル ファイルに対して機能します。

lrename oldfile newfile

rename と同じですが、ローカル ファイルに対して機能します。

lrm [options...] file...

rm と同じですが、ローカル ファイルに対して機能します。

lrmdir directory

rmdir と同じですが、ローカル ファイルに対して機能します。

ls [-R] [-l] [-S] [-r] [-p] [-z|+z] [file...]

リモート サーバ上のファイルの名前を一覧表示します。ディレクトリについては、その内容が一覧表示されます。引数を指定しない場合、現在の作業ディレクトリの内容が一覧表示されます。

オプション:

-R

ディレクトリ ツリーを再帰的に一覧表示します。デフォルトでは、引数で指定されたディレクトリのサブディレクトリにはアクセスしません。

-l

許可属性、所有者、サイズ、および変更日時も表示します (詳細形式)。

-S

ファイル サイズに基づいて並べ替えを行います (デフォルトはアルファベット順の並べ替え)。

-r

並べ替え順を逆にします。

-p

一度に 1 ページ分のリストだけを表示します。

-z

クライアントは詳細形式の出力を生成します (オプション -l のエイリアス)。

+z

利用可能な場合は、サーバによって提供される詳細形式の出力が使用されます。

lsite [ none | name1=value1 name2=value2... ]

site と同じですが、ローカルのファイルおよびデータセットに対して機能します。

lsroots

サーバの仮想ルートを出力します。(これは VShell 拡張機能です。この機能を使用しないと、VShell サーバのファイルシステム構造を知ることができません。)

lsymlink targetpath linkpath

symlink と同じですが、ローカル ファイルに対して機能します。

mget [options...] file...

get と同義です。

mkdir directory

directory で指定されたディレクトリの作成を試みます。

mput [options...] file...

put と同義です。

open hostname | -l

リモート側をホスト hostname に接続しようと試みます。

オプション:

-l

リモート側をローカル ファイルシステムに接続します (サーバを必要としません)。

pause [seconds]

バッチ ファイルの実行を seconds 秒間停止するか、seconds が指定されていない場合は Enter キーが押されるまで停止します。

put [options...] file...

指定されたファイルをローカル エンドからリモート エンドに転送します。オプションと動作は get と同じです。

pwd

現在のリモート作業ディレクトリの名前を出力します。

quit

アプリケーションを終了します。

readlink path

path がシンボリック リンクの場合、リンクが指している場所を示します。

rename oldfile newfile

oldfile の名前を newfile に変更しようと試みます。newfile がすでに存在する場合、ファイルは変更されません。

rm [-I, --interactive] [-r, --recursive] file...

file で指定されたファイルまたはディレクトリの削除を試みます。

オプション:

-I, --interactive

ファイルまたはディレクトリを削除するかどうかをユーザに確認します (バッチ モードでは機能しません)。

-r, --recursive

ディレクトリは再帰的に削除されます。

rmdir directory

directory で指定されたディレクトリの削除を試みます。このコマンドは、ディレクトリが空で、サブディレクトリも存在しない場合にのみディレクトリを削除します。

set [ defaults | option1=value1 option2=value2... ]

各種パラメータのデフォルト値を設定します。set コマンドには以下のオプションを指定できます。

defaults

パラメータをシステムのデフォルトに設定します。

checksum [ =yes | no | md5 | sha1 | md5-force | sha1-force | checkpoint ]

ファイル転送を再開できるファイル内のポイントを特定するために、MD5 または SHA-1 チェックサム、あるいは独立したチェックポイント データベースを使用します。buffer_size_bytes よりもサイズが小さいファイルはチェックされません。サイズの小さいファイルに対しては md5-force または sha1-force を使用します (デフォルトは yes で、MD5 チェックサムを使用します)。チェックポイント設定は、サイズの大きなファイルを 1 つずつ転送するときに使用します。

compatibility-mode [ =tectia | ftp | openssh ]

ファイル転送で使用する再帰モードを定義します。

tectia

sftpg3 クライアントは、現在のディレクトリとそのすべてのサブディレクトリからファイルを再帰的に転送します。これはデフォルトのモードです。

ftp

単一のファイルが転送され、サブディレクトリはコピーされません。

openssh

指定したディレクトリから通常ファイルとシンボリック リンクのみがコピーされ、サブディレクトリはコピーされません。

overwrite [ =yes | no ]

既存の転送先ファイルを上書きするかどうかを決定します (デフォルトは yes)。

progress-display [ =no | bar | line ]

ファイル転送操作中に進行状況を表示する際のモードを選択します。デフォルトは bar で、進行状況バーを表示します。オプション line は、progress-line-format オプションで行われた設定に従って進行状況の情報を表示します。

progress-line-format=FORMAT_STRING

進行状況の行に表示する情報を選択します。このオプションは --progress-display=line のときに使用します。コマンド get --progress-line-format の内容オプションの定義を参照してください。

progress-line-interval=seconds

行モードで進行状況情報を更新する頻度を定義します。間隔は秒単位で指定します。デフォルトは 60 秒です。

statistics-display [ =no | yes | simple | bytes ]

ファイル転送操作の後で表示する統計の形式を選択します (デフォルトは no)。コマンド get --statistics のオプションの説明を参照してください。

statistics-format=FORMAT_STRING

統計の形式と内容を選択します。このコマンドは statistics-display=yes|simple|bytes のときに使用します。コマンド get --statistics-format の内容オプションの定義を参照してください。

streaming [ =yes | no | force | ext ]

サーバでストリーミングがサポートされている場合、ファイル転送にストリーミングを使用します。buffer_size_bytes よりもサイズが小さいファイルについては、ストリーミングを使用した転送を行いません。サイズの小さいファイルに対しては force を使用してください。デフォルトは no です。

z/OS ホストで MVS データセットへの直接アクセスを有効にするには、ext を使用します。他の環境ではサイズの小さいファイルの転送が低速になる可能性があるため、このオプションは、ファイル転送が主としてメインフレームのデータセット転送に使用されるときにのみ使用してください。

チェックサムが計算される場合、ファイル転送ではステージングが使用され、ストリーミングは使用されないため、streaming=ext オプションを指定する場合は checksum=no オプションも指定する必要があります。

拡張ストリーミングを有効にする別の方法は、環境変数として SSH_SFTP_STREAMING_MODE=ext および SSH_SFTP_CHECKSUM_MODE=no を定義することです。

setext [extension...]

自動転送モードでアスキー形式になるファイル拡張子を選択します。ファイル拡張子では通常の zsh-fileglob 正規表現を使用できます。

setperm fileperm [:dirperm]

アップロード時のファイルまたはディレクトリのデフォルトの許可ビットを設定します。(既存のファイルまたはディレクトリの許可属性を保持するには、fileperm に接頭辞 p を付けます。)

sget [options...] srcfile [dstfile]

dstfile で定義されたファイル名を使用して、指定された単一ファイルをリモート エンドからローカル エンドに転送します。ディレクトリはコピーされません。ワイルドカードは使用できません。オプションは get と同じです。

site [ none | name1=value1 name2=value2... ]

リモート ホストのファイル パラメータおよびデータセット パラメータを設定します。パラメータは 1 つずつ入力することも、スペースまたはカンマで区切って複数のパラメータを入力することもできます。長いパラメータと省略形の両方を使用できます。site コマンドを引数なしで実行すると、入力したパラメータの一覧が出力されます。none を設定するとすべてのパラメータがリセットされます。

利用可能なパラメータは以下の通りです。

  • A|transfer_translate_dsn_templates=TEMPLATES
  • B|BLKsize|BLOCKSIze=SIZE
  • BLocks
  • C|transfer_codeset=CODESET
  • CONDdisp=catlg|delete
  • CYlinders
  • D|transfer_file_codeset=CODESET
  • DATAClass|dataclas=CLASS
  • E|transfer_translate_table=TABLE
  • F|transfer_format=FORMAT
  • fixrecfm=LENGTH
  • fixrecfm LENGTH
  • I|transfer_line_delimiter=CONVENTION
  • J|transfer_file_line_delimiter=CONVENTION
  • keylen=LENGTH
  • keyoff=OFFSET
  • L|size=SIZE
  • like=LIKE
  • M|DIrectory|directory_size=SIZE
  • MGmtclass|mgmtclas=CLASS
  • NOTRAILingblanks
  • NOTRUNcate
  • O|RECfm=RECFM
  • P|profile=PROFILE
  • PRImary|primary_space=SPACE
  • R|LRecl=LENGTH
  • SECondary|secondary_space=SPACE
  • space_unit=UNIT
  • space_unit_length=LENGTH
  • STOrclass|storclas=CLASS
  • T|type=TYPE
  • TRacks
  • trailing_blanks=yes|no
  • TRAILingblanks
  • TRUNcate
  • U|record_truncate=yes|no
  • unit=UNIT
  • volumes=VOLUMES
  • X|transfer_mode=MODE

sput [options...] srcfile [dstfile]

dstfile で定義されたファイル名を使用して、指定された単一ファイルをローカル エンドからリモート エンドに転送します。ディレクトリはコピーされません。ワイルドカードは使用できません。オプションは get と同じです。

sunique [on] [off]

ファイルを一意の名前で保存します。オプションを指定しない場合、このコマンドは「sunique」の状態を切り替えます。

転送されるファイルのうち 2 つ以上が同じ名前である場合、この機能により、重複したファイル名の末尾に連続する番号が付加されます。たとえば、file.namefile.name1file.name2 のようになります。

symlink targetpath linkpath

targetpath を指すことになるシンボリック リンク linkpath を作成します。

verbose

詳細モードを有効にします (debug 2 コマンドと同じ)。debug disable によって、詳細モードを後から無効にすることができます。

help [topic]

topic を指定しない場合は、利用可能なトピックが一覧表示されます。topic を指定した場合は、トピックについて利用可能なオンライン ヘルプが出力されます。

helpall

すべてのトピックについての利用可能なオンライン ヘルプが出力されます。

コマンドの解釈

sftpg3 は、コマンドライン上でバックスラッシュ (\) と引用符 ("") の両方を認識します。バックスラッシュは、コマンドラインの解釈時に文字の特別な意味を無視するために使用できます。直後の文字に特別な意味がない場合でも、バックスラッシュは除去されます。

引用符は、スペースを含むファイル名を指定するために使用できます。

[注意]注意

コマンド get . および put . は現在のディレクトリ内のすべてのファイルを取得または送信し、現在のディレクトリ内のファイルを上書きする可能性があります。

sftpg3 は、chmodlchmodlsllsrmlrmget、および put の各コマンドに渡されるワイルドカード文字 (glob パターンと呼ぶ場合もあります) をサポートします。

コマンドライン編集 (UNIX)

UNIX では、コマンドライン編集のために以下のキー シーケンスを使用できます。

Ctrl-Space

マークを設定します。

Ctrl-A

行の先頭に移動します。

Ctrl-B

カーソルを 1 文字左に移動します。

Ctrl-D

カーソルの右側にある文字を消去するか、またはコマンドラインが空の場合にプログラムを終了します。

Ctrl-E

行の末尾に移動します。

Ctrl-F

カーソルを 1 文字右に移動します。

Ctrl-H

バックスペース。

Ctrl-I

タブ。

Ctrl-J

Enter。

Ctrl-K

行の残り部分を削除します。

Ctrl-L

行を再描画します。

Ctrl-M

Enter。

Ctrl-L

次の行に移動します。

Ctrl-P

前の行に移動します。

Ctrl-T

2 つの文字を切り替えます。

Ctrl-U

行を削除します。

Ctrl-W

領域を削除します (領域のもう一方の端に Ctrl-Space でマークを付けます)。

Ctrl-X

拡張コマンドを開始します。

Ctrl-Y

削除された行をバッファから貼り付けます。

Ctrl-_

元に戻します。

Ctrl-X Ctrl-L

小文字の領域。

Ctrl-X Ctrl-U

大文字の領域。

Ctrl-X Ctrl-X

カーソルとマークを交換します。

Ctrl-X H

バッファ全体にマークを付けます。

Ctrl-X U

元に戻します。

Esc Ctrl-H

後方の単語を削除します。

Esc Delete

後方の単語を削除します。

Esc Space

余分なスペースを削除します (スペースを 1 つだけを残します)。

Esc <

行の先頭に移動します。

Esc >

行の末尾に移動します。

Esc @

現在の単語にマークを付けます。

Esc A

センテンス 1 つ分後方に移動します。

Esc B

単語 1 つ分後方に移動します。

Esc C

現在の単語を大文字で始めます。

Esc D

現在の単語を削除します。

Esc E

センテンス 1 つ分前方に移動します。

Esc F

単語 1 つ分前方に移動します。

Esc K

現在のセンテンスを削除します。

Esc L

現在の単語を小文字に変更します。

Esc T

単語を入れ換えます。

Esc U

現在の単語を大文字に変更します。

Delete

バックスペース。

ファイル名のサポート

ファイル名に使用できる文字セットはオペレーティング システムによって異なります。UNIX ではいくつかの特殊文字をファイル名に使用できますが、Windows では以下の文字は使用できません。

\/ : * ? " < > | 

sftpg3 のコマンドライン ツールは、実行形式 (対話型またはバッチ ファイルを使用) にかかわらず、Windows プラットフォーム上でも UNIX シェル コマンドラインの構文とセマンティクスに従います。ただし、エスケープ文字が ~ (チルダ) である点だけが異なります。

ファイル名に特殊文字が含まれるファイル (unixfilename*?".txt など) を UNIX サーバから Windows に転送するときは、Windows で使用できる新しい名前をファイルに付ける必要があります。

sftpg3 コマンドライン クライアントには、以下の 2 つのバージョンの get コマンドが含まれています。

get コマンドは複数ファイルの同時転送に使用できますが、転送先のファイル名を定義することはできません。ファイル名に特殊文字が含まれている場合は、Windows 上でも有効な名前になるよう、あらかじめ UNIX 側でファイルの名前を変更しておく必要があります。

sget コマンドは一度に 1 つのファイルを転送するために使用され、転送先ファイルの新しい名前を定義できます。このコマンドは、Windows 上で有効な名前にファイル名を変更する場合に使用します。コマンド シーケンスは以下の通りです。

$ sftpg3
sftp> open user@server
sftp> sget "file*name.txt" windowsfilename.txt

特殊文字のエスケープ

以下の文字は特別な意味を持つため、sftpg3 コマンドでは、ファイル名を引数に取るコマンドでこれらの文字をエスケープする必要があります。

* (アスタリスク) は任意の数の任意の文字に対応するワイルドカード文字です。

? (疑問符) は任意の 1 文字に対応するワイルドカードです。

表示どおりに扱う文字列は "" (引用符) で囲みます。

\ (バックスラッシュ) は UNIX でのエスケープ文字です。

~ (チルダ) は Windows でのエスケープ文字です。

エスケープ文字は、その直後の文字を表示通りに扱い、その文字の特別な意味を考慮しないように sftpg3 コマンドに指示します。エスケープ文字はローカル マシンのオペレーティング システムに従って選択されます。

文字 \ および ~ はそれら自体が特殊文字であり、ファイル名でこれらの文字を使用する場合はその直前にエスケープ文字を入れる必要があります。したがって、\ (UNIX) または ~ (Windows) の各文字を含むファイル名を sftpg3 コマンドに入力する必要がある場合は、以下のように、必要なエスケープ文字を各文字に追加してください。

\\ (UNIX)

~~ (Windows)

ファイル名またはその一部を引用符 ("") で囲むと、sftpg3 コマンドは引用符で囲まれた部分を表示通りに解釈するため、引用符の中の文字がワイルドカードまたはその他の特殊文字として解釈されることはありません。

ただし UNIX では、引用符 (") をファイル名の中で使用できます。UNIX でも Windows でも、ファイル名に " 文字を入力する必要がある場合はその前にエスケープ文字を追加する必要があります。

たとえば、Windows で file-"name".txt というファイル名をコマンドに入力するには、以下のようにコマンドを入力します。

sftp> sget "file-~"name~".txt" filename.txt

SSH Tectia の sftpg3 コマンドでのエスケープ文字の使用方法と、異なるオペレーティング システムで特殊文字を含むファイル名を入力する方法については、以下の例を参照してください。

sftpg3 コマンドでのファイル名の例を以下に示します。

以下のファイル名は UNIX で有効ですが、コマンドに入力するときはエスケープ文字が必要です。

file|name.txt
file-"name".txt
file?name.txt
file*name.txt
file\name.txt
file - name.txt
file~name.txt

UNIX で sftpg3 コマンドライン ツールを使用するときは、前述のファイル名は以下の形式で入力します。

file\|name.txt     or  "file|name.txt"
file-\"name\".txt  or  "file-\"name\".txt"
file\?name.txt     or  "file?name.txt"
file\*name.txt     or  "file*name.txt"
file\\name.txt     or  "file\\name.txt"
file\ -\ name.txt  or  "file - name.txt"
file~name.txt      or  "file~name.txt"

UNIX でのコマンドの例を以下に示します。

sftp> get "file*name.txt"
sftp> sget "file*name.txt" newfilename.txt

Windows で sftpg3 コマンドを使用するとき、前述の UNIX のファイル名は以下の形式で入力します。

file~|name.txt     or  "file|name.txt"
file-~"name~".txt  or  "file-~"name~".txt"
file~?name.txt     or  "file?name.txt"
file~*name.txt     or  "file*name.txt"
file~\name.txt     or  "file\name.txt"
file~ -~ name.txt  or  "file - name.txt"
file~~name.txt     or  "file~~name.txt"

Windows でのコマンド シーケンスの例を以下に示します。

> sftpg3 open user@server
sftp> get "file name.txt"
sftp> sget "file*name.txt" filename.txt

環境変数

sftpg3 は以下の環境変数を使用します。

SSH_SFTP_BATCH_FILE=FILE

sftpg3 の起動時に実行するバッチ ファイルのパスを定義します。これはたとえば、インタラクティブ セッションを開始する前に特定の動作を実行するために使用できます。

SSH_SFTP_CHECKSUM_MODE=no|md5|md5-force|sha1|sha1-force|checkpoint

sftpg3 および scpg3 コマンドのデフォルトのチェックサム モードを定義します。チェックサムは、ファイル転送が中断された場合に、そのファイル転送をファイル内のどこで再開できるかを特定するために使用します。

no - チェックサムを使用しません。ファイルは常に先頭から EOF まで転送されます。これにより、z/OS ではステージングが行われなくなります。

md5 – MD5 チェックサムを使用します。

md5-force – MD5 チェックサムを強制します。

sha1 – SHA1 チェックサムを使用します。

sha1-force – SHA1 チェックサムを強制します。

checkpoint – 独立したチェックポイント データベースを使用します。

SSH_SFTP_CMD_GETPUT_MODE=tectia|ftp|openssh

ファイル転送時の SFTP 互換モードを定義します。この設定は、get/mget/sget および put/mput/sput コマンドの動作と、sftpg3 クライアントによって使用される再帰レベルに影響を及ぼします。この環境変数の設定は、ssh-broker-config.xml ファイルで行う sftpg3-mode の設定よりも優先します。変数は以下の通りです。

tectiaget および put コマンドは通常と同様に機能し、sget および sput では転送先のファイル名を定義できます。ディレクトリとその内容は再帰的にコピーされます。これはデフォルトのモードです。

ftp – コマンド get/put がコマンド sget/sput として実行されます。つまり、単一のファイルが転送されます。また、コマンド mget/mput の再帰の深さが 1 に設定されます。つまり、指定したディレクトリのファイルのみが転送され、サブディレクトリのファイルは転送されません。

openssh – コマンド get/put/mget/mput が同様に動作します。つまり、指定したディレクトリ内の通常ファイルとシンボリック リンクのみが転送されます。サブディレクトリはコピーされません。

SSH_SFTP_OVERWRITE=yes|no

この変数を yes (デフォルト) に設定すると、デフォルトの動作は既存のファイルの上書きです。no に設定すると、デフォルトの動作は既存のファイルの上書きではありません。

SSH_SFTP_STREAMING_MODE=yes|no|ext

sftpg3 および scpg3 コマンドで使用するデフォルトのストリーミング モードを定義します。

no – ストリーミングを使用しません。

yes – 標準のストリーミングを使用します。

ext – 拡張ストリーミングを使用します。

exit 値

sftpg3 は、操作の成否に基づいて以下の値を返します。

0     Operation was successful. 
1     Internal error. 
2     Connection aborted by the user.
3     Destination is not a directory, but a directory was specified by the user. 
4     Connecting to the host failed. 
5     Connection lost. 
6     File does not exist. 
7     No permission to access file. 
8     Undetermined error from sshfilexfer.
11    Some non-fatal errors occured during a directory operation.
101   Wrong command-line arguments specified by the user. 

バッチ モードでは、sftpg3 は実行中にエラーが発生しなかった場合にのみ値 0 を返します。現在の作業ディレクトリの変更に失敗したり、接続の確立に失敗したり、バッチ操作中に接続が失われたりすると、sftpg3 は異常終了します。その他のエラーは stderr に出力され、最後のエラー値が sftpg3 プロセスの exit 値として返されます。

ssh-broker-config.xml ファイル内の接続プロファイル profile1 に定義されたサーバにリモート側が接続した状態で、sftpg3 セッションを開きます (ローカル側は当初、ローカル ファイルシステムに接続されます)。

$ sftpg3 profile1 

バッチ モードで sftpg3 を実行します。

$ sftpg3 -B batch.txt 

バッチ ファイル batch.txt の内容の例を以下に示します。非対話的な認証方法が使用され、サーバのホスト鍵は事前に格納されています。

lopen user@unixserver.example.com
open user@winserver.example.com
binary
lcd backup
cd c:/temp
get --force-lower-case Testfile-X.bin
lchmod 700 testfile-x.bin
quit

この例のバッチ ファイルは、接続のローカル側を UNIX サーバに対して、リモート側を Windows サーバに対してそれぞれ開き、転送モードをバイナリに設定します。ローカル ディレクトリを backup に、リモート ディレクトリを C:\Temp にそれぞれ変更し、リモート ディレクトリからローカル ディレクトリにファイルをコピーします。ファイル名は小文字 (testfile-x.bin) に変更されます。転送後、ユーザがすべての権限を持ち、他のユーザが一切の権限を持たないようにファイル許可属性が変更されます。