Skip to main content

クライアントコマンド(hcp)

hcpコマンドは、リモート(サーバ、hcpdデーモン)との間でファイル転送を行うコマンドです。ローカルのファイルコピー機能もサポートします。

基本書式

基本書式は以下の通りです。

Local  : hcp [OPTION]... SOURCE [SOURCE]... DEST
or : hcp [OPTION]... -f SOURCE_LIST_FILE DEST

Remote :
Push : hcp [OPTION]... SOURCE [SOURCE]... [USER@]HOST[:PORT]:DEST
Pull : hcp [OPTION]... [USER@]HOST[:PORT]:SOURCE [:SOURCE]... DEST

Remote using source file list :
Push : hcp [OPTION]... -f SOURCE_LIST_FILE [USER@]HOST[:PORT]:DEST
Pull : hcp [OPTION]... -f SOURCE_LIST_FILE DEST
Pull : hcp [OPTION]... --source-file-host=HOST [--port=PORT] [--user=USER] -f SOURCE_LIST_FILE DEST

オプション一覧

hcpコマンドのオプションは以下の通りです。

コピー

説明短縮名オプション名
転送元パーミッションの保持ppermission
ディレクトリの再帰的コピーRrecursive
正規表現使用(ワイルドカードの適用除外)gregex
ディレクトリの全探索(ワイルドカードまたは正規表現の適用除外)Yanydirs
転送データ・ファイル検査(メッセージダイジェストによる検査)yverify
転送データブロックの圧縮送信zcompress
シンボリックリンク(ファイル)を解決(Dereference)してコピーscopy-linkfile
シンボリックリンク(ディレクトリ)を解決してコピーSfollow-linkdir
SOURCEに指定されたシンボリックリンクを解決してコピーHdereference-src
空ファイル除外コピーeno-emptyfile
空ディレクトリ除外コピーEno-emptydir
ドットで始まるファイル名を除外してコピーdno-dotfile
ドットで始まるディレクトリを除外してコピーDno-dotdir
隠し属性が設定されたファイルのコピーIcopy-hidden
アーカイブ属性が設定されたファイルのコピーAarchive-check
スパースファイルを認識してコピーsparse
コピー動作のモード指定mcopy-mode
上書き動作のモード指定ooverwrite
エラー発生時の動作指定afail-action
read関数を用いたデータ逐次読み取り(転送元にデバイスファイルを指定した場合)reading-dev
Mapped I/Oを用いたデータ読み取り(転送元にデバイスファイルを指定した場合)reading-dev-via-mmap
ファイル転送の中断(秒単位指定)transfer-expire
制御メッセージのアウトオブオーダ抑制no-out-of-order-header-messaging
Windows読み込み属性保持preserve-win-read-only
HCPファイルスキップ動作の解除no-skip-hcp-file

通信方式選択機能

説明短縮名オプション名
HpFPプロトコルの使用hpfp
WebSocketプロトコル(SSL/TLS)の使用wss
ポート分離型UDP (HpFP)プロトコルの使用(廃止予定)udp
WebSocketプロトコル(平文通信)の使用ws
プロキシ直接接続指定(WebSocketプロトコル使用時)ws-proxy-direct
プロキシサーバの指定(WebSocketプロトコル使用時)ws-proxy
多重接続数の指定mcd

拡張ファイルI/O機能

説明短縮名オプション名
拡張ファイルI/O の使用(ベータ版, Linux)fio-extension
Direct I/O の使用(ベータ版, Linux)fio-direct
Linux非同期I/O の使用(ベータ版, Linux)fio-async-linux
Direct I/Oアラインメントサイズ指定fio-direct-align
Direct I/Oアラインメントサイズ指定(転送元)fio-direct-align-local
Direct I/Oアラインメントサイズ指定(転送先)fio-direct-align-remote
Direct I/Oアラインメント付メモリ確保方法指定fio-direct-malloc
Direct I/Oアラインメント付メモリ領域再利用指定fio-direct-reuse-aligned
Direct I/Oファイルサイズ閾値の指定fio-direct-threshold
非同期I/O最大イベント数の指定fio-async-max-events
非同期I/O最大イベント取得数fio-async-max-get-events
非同期I/Oイベント取得タイムアウトfio-async-get-events-timeo
ストレージ事前割当方式指定fio-fallocate
ストレージ事前割当サイズ指定fio-fallocate-unit
拡張ファイルI/O抑制(転送元)fio-no-extension-local
拡張ファイルI/O抑制(転送先)fio-no-extension-remote
拡張ファイルI/O全ファイル適用指定fio-extension-always

多数ファイル一括転送機能

説明短縮名オプション名
ソースファイルリストを指定してコピーfsource-file
接続先リモートホストの指定(ソースファイル使用時)source-file-host
接続先リモートホストのサービスポート指定(ソースファイル使用時)port

輻輳制御

説明短縮名オプション名
輻輳制御モードの指定(HpFPプロトコル使用時)hpfp-cong

データフロー制御・通信メッセージサイズ制御

説明短縮名オプション名
MSS(Maximum Segment Size)の指定(HpFPプロトコル使用時)hpfp-mss

データフロー制御・データバッファ設定

説明短縮名オプション名
送信バッファサイズの指定(HpFPプロトコル使用時)hpfp-sndbuf
受信バッファサイズの指定(HpFPプロトコル使用時)hpfp-rcvbuf

データフロー制御・一時ファイル保存機能(アトミック(不可分)ファイル保存)

説明短縮名オプション名
一時ファイルへの上書き要求overwrite-als-temp-file

認証

説明短縮名オプション名
鍵エージェント無効化no-agent
秘密鍵選択ident-select
サーバ証明書の検証無効化(WebSocket(SSL/TLS)通信時)wss-no-check-certificate
ユーザ名を先に指定して転送user
パスワードを先に指定して転送password

通信再開機能

説明短縮名オプション名
前回の続きから処理再開rresume
コピー処理自動再開(ネットワークの障害で中断した場合)auto-resume
レジューム時完全性検査解除no-integrity-on-resume

各種監視機能

説明短縮名オプション名
調査モード起動(廃止予定)investigation

性能評価機能

説明短縮名オプション名
ディスクI/O性能の計測Nno-send
通信プロトコルのネットワークI/O性能計測nno-diskio
ディスクI/O操作オフ(読み込みI/O実行指定)no-diskio-keep-read
ディスクI/O操作オフ(書き込みI/O実行指定)no-diskio-keep-write
ディスクI/O操作オフ(Direct I/O)アライメント付メモリ割当使用no-diskio-keep-memalign

ログ管理機能

説明短縮名オプション名
エラー以外のログを抑制qquiet
アプリケーション診断ログの出力先指定(旧log-file)hcp-diag
各種統計ログの出力先指定stat-log-file
実行記録の出力先指定hcp-out
多重起動モードで起動multi-run

ソフトウェアの情報確認

説明短縮名オプション名
バージョン確認Vversion
入力パラメータ及び設定情報確認config-test
コマンドヘルプの表示hhelp

システム動作環境設定

説明短縮名オプション名
設定ファイルのパス指定config-file
設定項目上書き指定config-option
使用可能な設定項目の表示show-config-options
実行ディレクトリからの相対パスでIncludeinclude-conf-from-cwd
サーバ互換対応無効化no-earlier-serv-compat

システムの情報確認

説明短縮名オプション名
システム情報表示system-info
システム性能確認run-host-benchmark
システム性能確認カテゴリ指定run-host-benchmark-categories

次のオプションはhcpdコマンドの説明をご参照ください。

--investigation

コピー

p, permission

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -p | --permission
=========================================================================

転送元のファイルパーミッション(UID/GID,実行権フラグなど)やファイル属性(更新日時など)を転送先で保持します。アクセス権などの理由で転送先でパーミッションやファイル属性を更新できない場合は、ファイル書込みを行った際にOSにより適用された属性などがそのまま保持されます。

--
例:
[user@localhost ~]$ hcp -p ...
--

R, recursive

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -R | --recursive
=========================================================================

転送元のディレクトリを再帰的に探索してファイル転送を行います。

--
例:
[user@localhost ~]$ hcp -R ...
--

g, regex

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -g | --regex
=========================================================================

転送元のパスを正規表現として解釈します。このオプションを使用しない場合は、転送元のパスはワイルドカード(*)を含むパターン文字列表現として解釈します。

正規表現(もしくはワイルドカードを含むパターン文字列)による評価は、指定した転送元のパスがディレクトリ及びファイルとしても存在しない場合に行われます。この評価は、ファイル探索時のファイル名及びディレクトリ名に対して適用されます。パターンにマッチしなかったファイルやディレクトリはスキップされます。パターン文字列は、最後のパス区切り文字(/など)以降の文字列から抽出されます。

--
例:
[user@localhost ~]$ hcp -g ...
--

Y, anydirs

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -Y | --anydirs
=========================================================================

regexオプションやワイルドカードなどによるパターンマッチングが指定された際に、ディレクトリ探索でこのパターンマッチングを無視して探索を行います。

--
例:
[user@localhost ~]$ hcp -Y ...
--

y, verify

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -y | --verify
=========================================================================

転送するデータブロック及びファイルに対してメッセージダイジェストによる検査を行います。

--
例:
[user@localhost ~]$ hcp -y ...
--

z, compress

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -z | --compress
=========================================================================

転送するデータのブロックを圧縮して転送します。

--
例:
[user@localhost ~]$ hcp -z ...
--

s, copy-linkfile

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -s | --copy-linkfile
=========================================================================

シンボリックリンクが参照するファイルをコピーします。このオプションを使用しない場合は、転送先でシンボリックリンクの作成を行います。

--
例:
[user@localhost ~]$ hcp -s ...
--

S, follow-linkdir

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -S | --follow-linkdir
=========================================================================

シンボリックリンクが参照するディレクトリを探索します。

本オプションを使用する場合は、サイクリックなディレクトリ探索やリンクを解決しない場合に確認される転送元パス配下の情報(ファイル数や容量など)からは予想しにくい多量のデータ処理などが生じ得る点に注意が必要です。

--
例:
[user@localhost ~]$ hcp -S ...
--

H, dereference-src

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -H | --dereference-src
=========================================================================

SOURCEに指定されたシンボリックリンクは解決してコピーを行います。

--
例:
[user@localhost ~]$ hcp --dereference-src ...
--

e, no-emptyfile

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -e | --no-emptyfile
=========================================================================

空ファイル(サイズが0 のファイル)のコピーを抑制します。

--
例:
[user@localhost ~]$ hcp -e ...
--

E, no-emptydir

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -E | --no-emptydir
=========================================================================

空ディレクトリ(配下にファイルもしくはディレクトリを全く含まないディレクトリ)のコピーを抑制します。

--
例:
[user@localhost ~]$ hcp -E ...
--

d, no-dotfile

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -d | --no-dotfile
=========================================================================

ドット(.)から始まるファイルのコピーを抑制します。

--
例:
[user@localhost ~]$ hcp -d ...
--

D, no-dotdir

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -D | --no-dotdir
=========================================================================

ドット(.)から始まるディレクトリのコピーを抑制します。

--
例:
[user@localhost ~]$ hcp -D ...
--

I, copy-hidden

=========================================================================
対応OS : Windows
書式 : -I | --copy-hidden
=========================================================================

隠し属性が設定されたファイルをコピーするか指定します。

--
例:
[user@localhost ~]$ hcp -I ...
--

A, archive-check

=========================================================================
対応OS : Windows
書式 : -A | --archive-check
=========================================================================

ファイルのアーカイブ属性が設定されているファイルをコピーします。

また、転送先のOSがWindowsの場合は本オプションを指定しない場合を含め、そのOSの機能に従ってアーカイブ属性が適時設定されます(新規作成、更新時、など。本ソフトウェアは同属性を設定する動作は行いません)。

--
例:
[user@localhost ~]$ hcp -A ...
--

sparse

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --sparse
=========================================================================

ファイルがスパースな(ホール領域を含む)場合に、ホールを検出して書き込み側で再現しながらファイルを転送します。

本オプションを使用しない場合、ホール領域はゼロデータで埋められて転送されます。

--
例:
[user@localhost ~]$ hcp --sparse ...
--

m, copy-mode

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -m <mode_name> | --copy-mode=<mode_name>
-------------------------------------------------------------------------
mode_name
既定値 : ALLCOPY
値の範囲 : ALLCOPY, UPDATE, DIFF, DIFF_STRICT, SYNC
=========================================================================

ファイルのコピー動作モードを指定します。

ALLCOPYは、全てのファイルをコピーします。

UPDATEは、転送先のファイルの更新日時を比較して転送元のファイルの更新日時の方が新しいファイルをコピーします。

DIFFは、UPDATEに加えてファイルのサイズ比較も行ってサイズに変化がある場合もコピーを行います。

DIFF_STRICTは、DIFFに加えてファイル毎にハッシュの比較を行い、異なるファイルをコピーします。

SYNCは、転送元に存在しない転送先のファイルを削除します(同期)。

--
例:
[user@localhost ~]$ hcp -m UPDATE ...
--

o, overwrite

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -o <overwrite_name> | --overwrite=<overwrite_name>
-------------------------------------------------------------------------
overwrite_name
既定値 : FORCE
値の範囲 : CONFIRM, FORCE, RENAME, BACKUP
=========================================================================

ファイルの上書き動作を指定します。

CONFIRMは、上書きの確認を行います。

FORCEは、確認せずに上書きを行います。

RENAMEは、上書きを行う前に古いファイルを次の様な接尾辞を付加してリネームします。

.YYMMDD_HHMMSS.NNN (NNNは連番)

BACKUPは、上書きする前に古いファイルを次の様なバックアップディレクトリへ移動します。

./YYMMDD_HHMMSS/

このディレクトリ名は、トランザクション形成時にプロセスユニークに生成されます。

--
例:
[user@localhost ~]$ hcp -o CONFIRM ...
--

a, fail-action

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -a <action_name> | --fail-action=<action_name>
-------------------------------------------------------------------------
action_name
既定値 : HALT
値の範囲 : HALT, SKIP
=========================================================================

ファイルコピーでのエラー発生時の動作を指定します。

HALTは、ファイルコピーで継続不可能な事象が発生した場合にコピーを中断します。

SKIPは、ファイルのコピーでエラーが発生した場合に、同ファイルを飛ばして継続することが可能な場合は、処理を続けます。

--
例:
[user@localhost ~]$ hcp -a SKIP ...
--

reading-dev

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --reading-dev
=========================================================================

転送元にブロックデバイスもしくはキャラクタデバイスを指定した場合に、read関数を用いてデータを読込みます。

reading-dev-via-mmap

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --reading-dev-via-mmap
=========================================================================

転送元にブロックデバイスもしくはキャラクタデバイスを指定した場合に、Mapped I/Oを用いてデータを読込みます。

transfer-expire

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --transfer-expire=<expire_sec>
-------------------------------------------------------------------------
expire_sec
既定値 : なし
値の範囲 : 期限の秒数
=========================================================================

ファイル転送を指定した秒数で中断します。ファイル転送が指定した秒数内で終了する場合は、中断せず完了します。

no-out-of-order-header-messaging

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-out-of-order-header-messaging
=========================================================================

制御メッセージ(ファイル要求などを含むメッセージ)のアウトオブオーダを抑制します。多重接続モード時にプライマリ接続で制御メッセージの送信のみが行われ、セカンダリ接続でコンテントデータ(ファイルのペイロードを含むメッセージ)の送信のみが行われる動作を解除します。全ての接続で全てのメッセージが送信されるように動作が変わります。

preserve-win-read-only

=========================================================================
対応OS : Linux / Windows
書式 : --preserve-win-read-only
=========================================================================

転送先でWindowsの読み取り専用属性を保持します。 転送元でWindowsの読み取り専用属性が有効な場合や、Unixの所有者のアクセス権が読込みのみの場合に適用されます。

no-skip-hcp-file

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-skip-hcp-file
=========================================================================

デフォルトで次のファイルをファイル転送から除外するようになりました。この動作を無効にします。

  • Linux/macOS : .hcp.out, .hcp.in, .hcp.diag, .hcp.statistics.*
  • Windows : _hcp.out, _hcp.in, _hcp.diag, _hcp.statistics.*

通信方式選択機能

hpfp

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hpfp
=========================================================================

トランスポートにHpFPプロトコルを使用するように指示します。

--
例:
[user@localhost ~]$ hcp ... --hpfp /path/to/src_file 192.168.10.100:65520:/path/to/dst_file
--

wss

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --wss
=========================================================================

トランスポートにWebSocketプロトコル(SSL/TLS)を使用するように指示します。

udp

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --udp=<hpfp_options>
hpfp_options := <hpfp_udp_port>:<hpfp_cong_mode>:<hpfp_sndbuf>:<hpfp_rcvbuf>:<hpfp_mss>
-------------------------------------------------------------------------
hpfp_udp_port
書式 : ( DEFAULT | D | <decimal_number> )
既定値 : 65520
値の範囲 : decimal_numberは、1 - 65535の範囲。DはDEFAULTの略記。
-------------------------------------------------------------------------
hpfp_cong_mode
既定値 : FAIR
値の範囲 : DEFAULT(D), FAIR(F), MODEST(M), FAIR_FAST_START(S), AGGRESSIVE(A)
※ 括弧内は省略表記
-------------------------------------------------------------------------
hpfp_sndbuf
書式 : ( DEFAULT | D | <decimal_number>[[(T|G|M|K)]B] )
既定値 :
100MB (Linux.x86 / Windows / Mac)
8MB (Raspbian)
値の範囲 : バイト換算で符号なし倍長整数の範囲。DはDEFAULTの略記。
-------------------------------------------------------------------------
hpfp_rcvbuf
書式 : ( DEFAULT | D | <decimal_number>[[(T|G|M|K)]B] )
既定値 :
200MB (Linux.x86 / Windows / Mac)
16MB (Raspbian)
値の範囲 : バイト換算で符号なし倍長整数の範囲。DはDEFAULTの略記。
-------------------------------------------------------------------------
hpfp_mss
書式 : ( DEFAULT | D | NONE | N | <decimal_number>[[(T|G|M|K)]B] )
既定値 : NONE
値の範囲 : バイト換算で符号なし整数の範囲。DはDEFAULTの略記。NはNONEの略記。
=========================================================================

本オプションは、廃止予定(deprecated)です。

トランスポートにHpFP プロトコルを使用するように指示します。

hpfp_udp_portは、HpFPプロトコルで使用するUDPポート番号を指定します。

hpfp_cong_modeは、 輻輳制御モードを指定します。

hpfp_sndbufは、HpFPプロトコル送信バッファサイズを指定します(バイト単位)。

hpfp_rcvbufは、HpFPプロトコル受信バッファサイズを指定します(バイト単位)。

hpfp_mssは、HpFPプロトコルのMSS(Maximum Segment Size)を指定します。MTUサイズからプロトコルヘッダ44バイトを引いたサイズが最適値です。Dを指定すると既定値を使用します。Nを指定した場合、HpFPプロトコルによるMTU探索を行い値を決定します。

輻輳制御モードについては、指定したモードをサーバが許可しない場合は、FAIRが適用されます。この動作により異なるアルゴリズムが適用される場合は、次の様なログにより通知されます。

2018/07/05 13:20:44 00007f9a2dfa0700:INFO :Your requested congestion mode of HpFP will not be used (requested=AGGRESSIVE, actual=FAIR).

--
例:
[user@localhost ~]$ hcp --udp=D:S:4MB:8MB:8956B ...
--

ws

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --ws
=========================================================================

トランスポートにWebSocketプロトコル(平文通信)を使用するように指示します。

ws-proxy-direct

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --ws-proxy-direct
=========================================================================

WebSocketプロトコルを使用する場合に、プロキシサーバを使用せずに直接接続を行うように指示します。

ws-proxy

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --ws-proxy=<proxy_server>
-------------------------------------------------------------------------
proxy_server
書式 : <proxy_server_address>:<proxy_server_port_number>
既定値 : なし
値の範囲 : プロキシサーバのアドレスとポート番号
=========================================================================

WebSocketプロトコルを使用する場合に使用するプロキシサーバを指定します。SSL/TLSを使用する場合、使用しない場合ともに適用されます。指定しない場合は、システムのプロキシ設定を参照して動作します。

mcd

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --mcd=<multiple_connection_degree>
-------------------------------------------------------------------------
multiple_connection_degree
既定値 : なし
値の範囲 : 1 - 65535
=========================================================================

多重接続を行う場合の接続数を指定します。指定しない場合は、サーバのサービスに設定されている多重接続数の上限まで接続を作成します。1を指定した場合は、単一接続での通信動作を行います。また、サーバのサービスに設定されている多重接続数の上限を超える値を指定した場合は、この上限まで接続を作成します。

拡張ファイルI/O機能

fio-extension

=========================================================================
対応OS : Linux (ベータ版)
書式 : --fio-extension
=========================================================================

ファイルの読み書きに拡張ファイルI/Oを使用するように指示します。

このオプションを指定すると、次のオプション構成が適用されます。

  • Direct I/O および Linux非同期I/O
  • Direct I/O アラインメント自動検出
  • Direct I/O 閾値 1GB
  • 非同期I/O最大イベント数 32
  • ストレージ事前割当 native/256MB
    --
    例:
    [user@localhost ~]$ hcp --fio-extension 1GB.src.dat 192.168.10.100:1GB.dst.dat
    --

fio-async-linux

=========================================================================
対応OS : Linux (ベータ版)
書式 : --fio-async-linux
=========================================================================

ファイルの読み書きにLinux非同期I/Oを使用するように指示します。オプションfio-directは指定されたとみなされます(fio-direct指定不要)。

Linux非同期I/Oを明示的に指定する場合などに使用します。

本オプションとファイルの事前割当(fio-fallocateオプション)を併用した場合に、書き込み側でプロセスのクラッシュが発生すると、再開時(resumeオプション)は先頭からのファイル転送(新規転送)となることがあります。

--
例:
[user@localhost ~]$ hcp --fio-async-linux 1GB.src.dat 192.168.10.100:1GB.dst.dat
--

fio-direct

=========================================================================
対応OS : Linux (ベータ版)
書式 : --fio-direct
=========================================================================

ファイルの読み書きにDirect I/Oを使用するように指示します。オプションfio-extensionは指定されたとみなされます(fio-extension指定不要)。

Linux非同期I/Oを使用せずにDirect I/Oだけを使用したい場合などに本オプションを使用します。

--
例:
[user@localhost ~]$ hcp --fio-direct 1GB.src.dat 192.168.10.100:1GB.dst.dat
--

fio-direct-align

=========================================================================
対応OS : Linux
書式 : --fio-direct-align=<alignment>
-------------------------------------------------------------------------
alignment
書式 : <decimal_number>[[(G|M|K)]B]
既定値 : なし
値の範囲 : バイト換算で符号なし整数の範囲
=========================================================================

Direct I/Oで使用する読書バッファのアラインメントサイズを指定します(バイト単位)。

未指定または0を指定した場合は、ファイルの読み書きを行うホスト上のシステムへ問い合わせます(自動検出)。

--
例:
[user@localhost ~]$ hcp ... --fio-direct-align=8KB ...
--

fio-direct-align-local

=========================================================================
対応OS : Linux
書式 : --fio-direct-align-local=<alignment>
-------------------------------------------------------------------------
alignment
書式 : <decimal_number>[[(G|M|K)]B]
既定値 : なし
値の範囲 : バイト換算で符号なし整数の範囲
=========================================================================

ローカルホスト(クライアント)で使用するDirect I/Oの読書バッファのアラインメントサイズを指定します(バイト単位)。

ローカルとリモートのホストでアラインメントサイズが異なる場合に個別指定するために使用します。

fio-direct-align-remote

=========================================================================
対応OS : Linux
書式 : --fio-direct-align-remote=<alignment>
-------------------------------------------------------------------------
alignment
書式 : <decimal_number>[[(G|M|K)]B]
既定値 : なし
値の範囲 : バイト換算で符号なし整数の範囲
=========================================================================

リモートホスト(サーバ)で使用するDirect I/Oの読書バッファのアラインメントサイズを指定します(バイト単位)。

ローカルとリモートのホストでアラインメントサイズが異なる場合に個別指定するために使用します。

fio-direct-malloc

=========================================================================
対応OS : Linux
書式 : --fio-direct-malloc=<how_malloc>
-------------------------------------------------------------------------
how_malloc
既定値 : malloc_h
値の範囲 : posix, malloc_h, malloc_f
=========================================================================

Direct I/Oで使用するアライメント付きメモリ領域の確保方法を指定します。ファイル転送時にファイルペイロードを分割して作成されるデータブロックを格納するメモリ領域の確保に適用されます。

posixを指定すると、標準関数posix_memalignを使用して確保します。

malloc_hを指定すると、標準関数mallocを使用してアライメントされたアドレスを返す実装(アライメントの管理情報はヘッダに記録)を使用して確保します。

malloc_fを指定すると、標準関数mallocを使用してアライメントされたアドレスを返す実装(アライメントの管理情報はフッターに記録)を使用して確保します。

posixは環境により確保性能が低下します。アライメント付きメモリ確保の標準関数を使用する必要がある場合に指定します。

malloc_fは、malloc_h(既定)を使用した場合に性能が期待ほどでない場合に代替として試す目的などで使用します。

--
例:
[user@localhost ~]$ hcp ... --fio-direct-malloc=posix ...
--

旧名fio-direct-aligned-mallocも使用可能です。

fio-direct-reuse-aligned

=========================================================================
対応OS : Linux
書式 : --fio-direct-reuse-aligned
=========================================================================

Direct I/Oを使用する場合に、アライメント付きで確保されたメモリ領域を再利用するように指定します。

指定すると、データブロックを格納したメモリ領域の使用後にその領域を解放せずにキャッシュして、次のデータブロックの格納のために使用します。実行プロセスあたり1GBまでキャッシュを行います。キャッシュされたメモリ領域で格納できないデータブロックが作成された場合は、キャッシュから引き当てたメモリ領域を解放して新たに確保します。

100Gbps環境においてディスクの読書きの性能が期待ほどでない場合などに指定します。

--
例:
[user@localhost ~]$ hcp ... --fio-direct-reuse-aligned ...
--

fio-direct-align-threshold

=========================================================================
対応OS : Linux
書式 : --fio-direct-threshold=<file_size>
-------------------------------------------------------------------------
file_size
書式 : <decimal_number>[[(T|G|M|K)]B]
既定値 : 1GB
値の範囲 : バイト換算で符号付き倍長整数の範囲
=========================================================================

Direct I/Oを使用する閾値(ファイルサイズ)を指定します。

--
例:
[user@localhost ~]$ hcp ... --fio-direct-threshold=2GB ...
--

fio-async-max-events

=========================================================================
対応OS : Linux
書式 : --fio-async-max-events=<max_events>
-------------------------------------------------------------------------
max_events
既定値 : 32
値の範囲 : 符号付き整数値の範囲
=========================================================================

非同期I/Oで処理するイベントの最大数を指定します。

--
例:
[user@localhost ~]$ hcp ... --fio-async-max-events=16 ...
--

fio-async-max-get-events

=========================================================================
対応OS : Linux
書式 : --fio-async-max-get-events=<max_get_events>
-------------------------------------------------------------------------
max_get_events
既定値 : 1
値の範囲 : 符号付き整数値の範囲
=========================================================================

非同期I/Oで処理するイベント取得の最大数を指定します。1回のio_getevents関数の呼出しで取得するI/Oイベントの最大数を変更します。

100Gbps環境においてディスクの読み書きの性能が期待ほどでない場合に切り分け調査の目的などで指定します。

--
例:
[user@localhost ~]$ hcp ... --fio-async-max-get-events=4 ...
--

fio-async-get-events-timeo

=========================================================================
対応OS : Linux
書式 : --fio-async-get-events-timeo=<timeo>
-------------------------------------------------------------------------
timeo
既定値 : 0
値の範囲 : 符号付き倍長整数値の範囲 (マイクロ秒)
=========================================================================

非同期I/Oでイベント取得のタイムアウト時間をマイクロ秒で指定します。0を指定した場合は、タイムアウトを無効にします(タイムアウト無し)。

100Gbps環境においてディスクの読書きの性能が期待ほどでない場合にio_getevents関数の呼出しでイベント取得のタイムアウト指定が影響しているか切り分け調査の目的などで指定します。

--
例:
[user@localhost ~]$ hcp ... --fio-async-get-events-timeo=1000 ... // 1ミリ秒タイムアウト
--

fio-fallocate

=========================================================================
対応OS : Linux
書式 : --fio-fallocate=<how_allocate>
-------------------------------------------------------------------------
how_allocate
既定値 : native
値の範囲 : native, standard, none
=========================================================================

ファイル書き込み時にストレージ領域の事前割当を行うかどうかを指定します。

nativeが指定された場合は、プラットフォーム固有のファイル割当機能が使用されます(fallocate on Linux)。

standardが指定された場合は、標準のファイル割当機能が使用されます(posix_fallocate on Linux)。

noneが指定された場合は、事前割当を行いません。

本オプションは、Linux非同期I/Oが動作するときに使用されます。

--
例:
[user@localhost ~]$ hcp ... --fio-async-linux --fio-fallocate=none ...
--

fio-fallocate-unit

=========================================================================
対応OS : Linux
書式 : --fio-fallocate-unit=<alloc_size>
-------------------------------------------------------------------------
alloc_size
書式 : <decimal_number>[[(T|G|M|K)]B]
既定値 : 2560MB
値の範囲 : バイト換算で符号付き倍長整数の範囲
=========================================================================

ファイル書き込み時にストレージ領域の事前割当を行うサイズ(単位)を指定します。

--
例:
[user@localhost ~]$ hcp ... --fio-async-linux --fio-fallocate-unit=1GB ...
--

fio-no-extension-local

=========================================================================
対応OS : Linux
書式 : --fio-no-extension-local
=========================================================================

ローカルホスト(クライアント)で拡張ファイルI/Oを無効にします。

--
例:
[user@localhost ~]$ hcp ... --fio-no-extension-local ...
--

fio-no-extension-remote

=========================================================================
対応OS : Linux
書式 : --fio-no-extension-remote
=========================================================================

リモートホスト(サーバ)で拡張ファイルI/Oを無効にします。

--
例:
[user@localhost ~]$ hcp ... --fio-no-extension-remote ...
--

fio-extension-always

=========================================================================
対応OS : Linux
書式 : --fio-extension-always
=========================================================================

すべてのファイルに対して拡張ファイルI/Oを適用します。

fio-direct-thresholdオプションによる閾値設定を無効にする目的で使用します。

--
例:
[user@localhost ~]$ hcp ... --fio-extension-always ...
--

多数ファイル一括転送機能

f, source-file

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -f <source-path-list-file> | --source-file=<source-path-list-file>
-------------------------------------------------------------------------
source-path-list-file
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

転送元の一覧を記述したファイルを指定します。

--
例1: ローカルが転送元

[user@localhost ~]$ cat source.list
file1.txt
child_dir/file2.txt
child_dir2/
/home/user/file3.txt

[user@localhost ~]$ hcp -f source.list ...
--
例2: リモートが転送元1

[user@localhost ~]$ cat source.list
192.168.100.100:874:file1.txt
:child_dir/file2.txt
:child_dir2/
:/home/user/file3.txt

[user@localhost ~]$ hcp -f source.list ...
--
例3: リモートが転送元2

[user@localhost ~]$ cat source.list
file1.txt
child_dir/file2.txt
child_dir2/
/home/user/file3.txt

[user@localhost ~]$ hcp -f source.list --source-file-host=127.0.0.1 ...
--
例4: リモートが転送元3

[user@localhost ~]$ cat source.list
192.168.100.100:874:file1.txt
192.168.100.100:874:child_dir/file2.txt
192.168.100.100:874:child_dir2/
192.168.100.100:874:/home/user/file3.txt

[user@localhost ~]$ hcp -f source.list ...
--

source-file-host

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --source-file-host=<remote-host>[:<remote-port>]
-------------------------------------------------------------------------
remote-host
既定値 : なし
値の範囲 : IPアドレス もしくは ホスト名
-------------------------------------------------------------------------
remote-port
既定値 : なし
値の範囲 : ポート番号
=========================================================================

source-fileオプションを指定する際に使用する接続先のリモートホストを指定します。

--
例:
[user@localhost ~]$ hcp --source-file-host=192.168.100.100 ...
--

port

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --port=<remote-port>
-------------------------------------------------------------------------
remote-port
既定値 : なし
値の範囲 : ポート番号
=========================================================================

接続先のリモートホストのサービスポート番号を指定します。--source-file-hostを使用する場合は、こちらのポート番号指定が優先されます。

--
例:
[user@localhost ~]$ hcp --port=1874 ...
--

輻輳制御

hpfp-cong

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hpfp-cong=<hpfp_cong_mode>
-------------------------------------------------------------------------
hpfp_cong_mode
既定値 : FAIR
値の範囲 : FAIR(F), MODEST(M), FAIR_FAST_START(S), AGGRESSIVE(A)
※ 括弧内は省略表記
=========================================================================

HpFPプロトコルで使用する輻輳制御モードを指定します。

輻輳制御モードについては、指定したモードをサーバが許可しない場合は、FAIRが適用されます。この動作により異なるアルゴリズムが適用される場合は、次の様なログにより通知されます。

2018/07/05 13:20:44 00007f9a2dfa0700:INFO :Your requested congestion mode of HpFP will not be used (requested=AGGRESSIVE, actual=FAIR).

--
例:
[user@localhost ~]$ hcp ... --hpfp --hpfp-cong=S /path/to/src_file 192.168.10.100:65520:/path/to/dst_file
--

データフロー制御・通信メッセージサイズ制御

hpfp-mss

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hpfp-mss=<hpfp_mss>
-------------------------------------------------------------------------
hpfp_mss
書式 : ( NONE | N | <decimal_number>[[(T|G|M|K)]B] )
既定値 : NONE
値の範囲 : バイト換算で符号なし整数の範囲。NはNONEの略記。
=========================================================================

HpFPプロトコルのMSS(Maximum Segment Size)を指定します。MTUサイズからプロトコルヘッダ44バイトを引いたサイズが最適値です。Nを指定した場合、HpFPプロトコルによるMTU探索を行い値を決定します。

--
例:
[user@localhost ~]$ hcp ... --hpfp --hpfp-mss=8956 /path/to/src_file 192.168.10.100:65520:/path/to/dst_file
--

データフロー制御・データバッファ設定

hpfp-sndbuf

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hpfp-sndbuf=<hpfp_sndbuf>
-------------------------------------------------------------------------
hpfp_sndbuf
書式 : <decimal_number>[[(T|G|M|K)]B]
既定値 :
100MB (Linux.x86 / Windows / Mac)
8MB (Raspbian)
値の範囲 : バイト換算で符号なし倍長整数の範囲。
=========================================================================

HpFPプロトコルの送信バッファサイズを指定します(バイト単位)。

--
例:
[user@localhost ~]$ hcp ... --hpfp --hpfp-sndbuf=8MB /path/to/src_file 192.168.10.100:65520:/path/to/dst_file
--

hpfp-rcvbuf

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hpfp-rcvbuf=<hpfp_rcvbuf>
-------------------------------------------------------------------------
hpfp_rcvbuf
書式 : <decimal_number>[[(T|G|M|K)]B]
既定値 :
200MB (Linux.x86 / Windows / Mac)
16MB (Raspbian)
値の範囲 : バイト換算で符号なし倍長整数の範囲。
=========================================================================

HpFPプロトコルの受信バッファサイズを指定します(バイト単位)。

--
例:
[user@localhost ~]$ hcp ... --hpfp --hpfp-rcvbuf=16MB /path/to/src_file 192.168.10.100:65520:/path/to/dst_file
--

データフロー制御・一時ファイル保存機能(アトミック(不可分)ファイル保存)

overwrite-als-temp-file

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --overwrite-als-temp-file
=========================================================================

アトミックライクな保存で既に存在する一時ファイルを上書きするように要求します。

このオプションを指定せずに一時ファイルが既に存在する場合は、そのファイルの転送はエラーと判定され中断されます。

また、サーバの設定AtomicLikeSavingRejectOverwriteRequestがyesの場合は、このオプションが指定されていてもサーバ上で既に存在する一時ファイルの上書きは拒否されます。

認証

no-agent

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-agent
=========================================================================

公開鍵認証で鍵エージェントを利用しないように指示します。

現在読込中の鍵を利用することに不都合がある場合や、接続先のサーバが古く鍵エージェント認証に対応していない場合に接続失敗を回避する目的などで利用します。

ユーザの利用環境において鍵エージェントが動作していない場合や、動作していても鍵が登録されていない場合などは、本オプションが指定される場合と同様の動作(鍵エージェント認証を行わない動作)をします。

ident-select

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --ident-select=<path-desc>
-------------------------------------------------------------------------
path-desc
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

使用したい秘密鍵のパス文字列を指定します。

先に検出される秘密鍵に対応する公開鍵をサーバに設置していないなどの理由で認証が失敗する場合に、特定の鍵を使用するよう指示する目的などで利用します。

wss-no-check-certificate

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --wss-no-check-certificate
=========================================================================

WebSocketプロトコルでSSL/TLSを使用する際に、サーバ証明書の検証を無効にするように指示します。証明書のCN(Common Name)名、期間、中間証明書・ルート証明書の検証を省略してサーバ証明書を受け付けます。

user

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --user=<username>
-------------------------------------------------------------------------
username
既定値 : なし
値の範囲 : ユーザ名文字列
=========================================================================

ユーザ認証で使用するユーザ名を指定します。

--
例:
[user@localhost ~]$ hcp --user=user ...
--

password

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --password=<password>
-------------------------------------------------------------------------
password
既定値 : なし
値の範囲 : パスワード文字列
=========================================================================

ユーザ認証で使用する資格情報(パスワード、パスフレーズ)を指定します。

--
例:
[user@localhost ~]$ hcp --password=password ...
--

通信再開機能

r, resume

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -r <run-record-path> | --resume=<run-record-path>
-------------------------------------------------------------------------
run-record-path
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

hcpコマンドの実行記録(.hcp.outに出力されるファイル転送の実行記録)を使用して、コマンドの再開(レジューム)を行います。

--
例:
[user@localhost ~]$ hcp ...
[user@localhost ~]$ mv .hcp.out .hcp.in
[user@localhost ~]$ hcp -r .hcp.in ...
--

転送先に既にファイルが存在する場合は、そのファイルが転送元のファイルの先頭部分に一致するか完全性(integrity)検査が行われます。一致する場合は、レジュームが行われ、一致しない場合は先頭から転送し直します。

この検査を無効にするには、--no-integrity-on-resumeオプションを使用します。

auto-resume

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --auto-resume
=========================================================================

ネットワークの障害で中断した場合にコピー処理を自動で再開するように指示します。Ctrl+Cなどでユーザから中断を指示した場合は、その時点で再開はせず停止します。

パスワードで暗号化されていない秘密鍵を使用した公開鍵認証で利用を推奨します。パスワードが必要な場合、再認証による対話動作を回避するために認証情報をメモリ上にキャッシュします。

no-integrity-on-resume

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-integrity-on-resume
=========================================================================

レジュームするファイルの完全性(integrity)検査を行わないように指示します。単に、転送先のファイルのサイズから再開位置の検出のみを行います。

このオプションは、次の様な理由により検査時間が長くなる場合に、処理時間を短縮するために利用します。

  • マシンの性能が悪い
  • 再開する部分ファイルのサイズが巨大

性能評価機能

N, no-send

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -N | --no-send
=========================================================================

ネットワークへのデータ送信を抑制します。

このオプションは、転送元でのディスクI/Oやデータ処理の性能を確認する目的で使用します。

--
例:
[user@localhost ~]$ hcp -N ...
--

n, no-diskio

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -n <bench_spec> | --no-diskio=<bench_spec>
bench_spec := <number_of_files>:<file_size>
-------------------------------------------------------------------------
number_of_files
既定値 : なし
値の範囲 : 符号なし整数
-------------------------------------------------------------------------
file_size
既定値 : なし
値の範囲 : 符号なし倍長整数
=========================================================================

転送元及び転送先でのローカルI/O を抑制します。

このオプションは、ネットワーク通信の性能を確認する目的で使用します。オプションの各パラメータの意味は次の通りです。

number_of_files := 送信するファイル数
file_size := ファイル毎に送信するサイズ(単位 バイト)

オプションの値を"0:0"で指定した場合は、転送元のパスを通常の動作で探索してファイル転送を行います(permissionオプションのためのファイル属性情報の参照やファイルからのデータの読込みなどの処理は行われません)。

本オプションは、転送元に/dev/zeroを指定した場合にも使用します。この場合は、本オプションのfile_sizeで指定されたサイズだけ/dev/zeroからデータを読み取り転送を行い、転送先では実際にファイルにデータを書き込みます(前述の動作と異なりI/O処理は省略されません)。通常は、転送先に/dev/nullを指定して、スペシャルデバイスでの読み書きのみを追加で行い、通信パフォーマンスを確認する目的で使用します。

--
例:
[user@localhost ~]$ hcp -n 1000:1048576 ...
例2:
[user@localhost ~]$ hcp -n 1:1048576 /dev/zero 192.168.10.100:874:/dev/null
--

no-diskio-keep-read

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-diskio-keep-read
=========================================================================

転送元及び転送先でのローカルI/Oの抑制を行う場合に(-nオプション)、ファイルからのデータ読込は行うように指示します。

--no-diskio-keep-writeとは排他的に使用します(同時指定不可)。

ディスクI/Oの読込性能がボトルネックになっていると想定される場合に、I/Oを有効にして切り分け調査をする目的などで使用します。

no-diskio-keep-write

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-diskio-keep-write
=========================================================================

転送元及び転送先でのローカルI/Oの抑制を行う場合に(-nオプション)、ファイルへのデータ書込は行うように指示します。

--no-diskio-keep-readとは排他的に使用します(同時指定不可)。

ディスクI/Oの書込性能がボトルネックになっていると想定される場合に、I/Oを有効にして切り分け調査をする目的などで使用します。

no-diskio-keep-memalign

=========================================================================
対応OS : Linux
書式 : --no-diskio-keep-memalign
=========================================================================

転送元及び転送先でのローカルI/Oの抑制を行い(-nオプション)、かつDirect I/Oを使用する(—fio-direct)場合に、ペイロードデータを保持するメモリ領域をアライメント付きメモリ割当を使用して確保するように指示します。

アライメント付きメモリ割当の負荷が性能のボトルネックになっていると想定される場合に、有効にして切り分け調査をする目的などで使用します。

ログ管理機能

q, quiet

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -q | --quiet
=========================================================================

非エラーメッセージの出力を抑制します。

--
例:
[user@localhost ~]$ hcp -q ...
--

hcp-diag

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hcp-diag=<log-file-path>
-------------------------------------------------------------------------
log-file-path
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

hcpコマンドの診断ログを指定したパスのファイルに出力します。

--
例:
[user@localhost ~]$ hcp --hcp-diag=hcp.log ...
--

旧名log-fileも使用可能です。

stat-log-file

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --stat-log-file=<log-file-path>
-------------------------------------------------------------------------
log-file-path
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

hcpコマンドが出力する統計ログの基準パスを指定します。

指定されたパスに接尾辞を付加して各統計ログが出力されます。

<指定されたパス>.application (アプリケーション統計)
<指定されたパス>.transport.tcp (TCPトランスポート統計)
<指定されたパス>.transport.hpfp (HpFPトランスポート統計)
<指定されたパス>.transport.ws (WS/WSSトランスポート統計)

--
例:
[user@localhost ~]$ hcp --stat-log-file=.hcp.statistics2 ...
--

hcp-out

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --hcp-out=<output-path>
-------------------------------------------------------------------------
output-path
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

ファイル転送の実行記録を出力するファイルを指定します。本オプションで出力される情報は、resumeオプションで必要となります。

--
例:
[user@localhost ~]$ hcp --hcp-out=- ...
SRC /home/user/Desktop/hcp_src5
DST 127.0.0.1:11112:/home/user/Desktop/hcp_dst5
OK 0000 FS 80000001 /home/user/Desktop/hcp_src5/file1.txt
OK 0000 FT 00000001 /home/user/Desktop/hcp_src5/file1.txt
EXIT 0 REASON 0000
--

本オプションを指定しない場合は、実行記録は実行ディレクトリの次のファイルなどに記録されます。

.hcp.out (Linux)
_hcp.out (Windows)

"-"を指定した場合は、標準出力に出力します。

FT (File Transfer)は、ファイル転送処理を表します。書式は次の通りです。

<result> <reason> FT <sequence> [<src_label> ]<path>

resultは、処理結果(OKもしくはNG)が記録されます。

reasonは、その処理結果の理由として後述のファイル処理理由コードが記録されます。

sequenceは、この処理に割り当てられた番号(シーケンス番号)が記録されます。

src_labelは、この処理で扱われるファイルに対応するソースのラベルが次の書式で記録されます。

SRC<src_index>

src_indexは、コマンドで指定したソースの添え字が記録されます。

pathは、この処理で扱われるファイルパスが記録されます。コマンドを実行しているホストのパスが記録されます。

複数のソースが指定された場合は、次の様な内容で進捗情報が記録されます。

--
例:
SRC0 /home/user/Desktop/hcp_src5\
SRC1 /home/user/Desktop/hcp_src6\
DST 127.0.0.1:11112:/home/user/Desktop/hcp_dst5\
OK 0000 FS 80000001 SRC0 /home/user/Desktop/hcp_src5/file1.txt\
OK 0000 FS 80000002 SRC0 /home/user/Desktop/hcp_src5/file2.txt\
OK 0000 FS 80000003 SRC1 /home/user/Desktop/hcp_src6/file3.txt\
OK 0000 FS 80000004 SRC1 /home/user/Desktop/hcp_src6/file4.txt\
OK 0000 FT 00000001 SRC0 /home/user/Desktop/hcp_src5/file1.txt\
OK 0000 FT 00000002 SRC0 /home/user/Desktop/hcp_src5/file2.txt\
OK 0000 FT 00000003 SRC1 /home/user/Desktop/hcp_src6/file3.txt\
OK 0000 FT 00000004 SRC1 /home/user/Desktop/hcp_src6/file4.txt\
EXIT 0 REASON 0000\
--

FS (File Sync)は、ファイル同期処理を表します。転送先のファイルが転送元に存在せず本同期処理によって削除される場合は、次の様に記録されます。

--
例:\
SRC /home/user/Desktop/hcp_src5\
DST 127.0.0.1:11112:/home/user/Desktop/hcp_dst5\
OK 0000 FS 80000001 /home/user/Desktop/hcp_src5/file1.txt\
OK 0000 FS 80000002 /home/user/Desktop/hcp_src5/file2.txt\
OK A001 FS 80000003 /home/user/Desktop/hcp_src5/file3.txt\
OK 0000 FT 00000001 /home/user/Desktop/hcp_src5/file1.txt\
OK 0000 FT 00000002 /home/user/Desktop/hcp_src5/file2.txt\
EXIT 0 REASON 0000\
--

ソースが複数ある場合は、ソースラベルの添え字が"?"で表記されます。

--
例:\
SRC0 /home/user/Desktop/hcp_src5\
SRC1 /home/user/Desktop/hcp_src6\
DST 127.0.0.1:11112:/home/user/Desktop/hcp_dst5\
OK 0000 FS 80000001 SRC0 /home/user/Desktop/hcp_src5/file1.txt\
OK 0000 FS 80000002 SRC0 /home/user/Desktop/hcp_src5/file2.txt\
OK 0000 FS 80000003 SRC1 /home/user/Desktop/hcp_src6/file3.txt\
OK 0000 FS 80000004 SRC1 /home/user/Desktop/hcp_src6/file4.txt\
OK A001 FS 80000005 SRC? /home/user/Desktop/hcp_src6/file5.txt\
OK 0000 FT 00000001 SRC0 /home/user/Desktop/hcp_src5/file1.txt\
OK 0000 FT 00000002 SRC0 /home/user/Desktop/hcp_src5/file2.txt\
OK 0000 FT 00000003 SRC1 /home/user/Desktop/hcp_src6/file3.txt\
OK 0000 FT 00000004 SRC1 /home/user/Desktop/hcp_src6/file4.txt\
EXIT 0 REASON 0000\
--

最後の行にこの実行の終了ステータスと理由コードが次の書式で記録されます。

EXIT <exit_status> REASON <reason_code>

後述の設定項目UseProperCopyAndSyncをyesに設定した場合は、ディレクトリ探索時に上書きに関する判定結果が次の書式で記録されます。

<result> <reason> DE <sequence> [<src_label> ]<path>

multi-run

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --multi-run=<record-path>[:<output-switch>]
-------------------------------------------------------------------------
record-path
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
-------------------------------------------------------------------------
output-switch
書式 : ( (A|T|R|L)[...] | THRU | FULL )
既定値 : THRU
=========================================================================

クライアントを多重起動モードで起動します。本オプションを指定した場合は、その指定に従い次の記録(ログ)を指定のディレクトリにユニークなファイル名で保存します。同一のディレクトリで複数のクライアントで作業する場合や、バックグランド実行を行う場合などに利用します。

  • アプリケーション統計
  • トランスポート統計
  • 結果出力
  • アプリケーションログ

record-pathは、前述の記録(ログ)を保存するディレクトリを指定します。

output-switchは、前述の記録(ログ)の出力を制御する指示を指定します。

Aはアプリケーション統計を表し、指定すると上記ディレクトリに次のファイル名でアプリケーション統計を記録します。

hcp.mr.<YYYYMMDD_hhmmss_msec>.<pid>.statistics.application

Tはトランスポート統計を表し、指定すると上記ディレクトリに次のファイル名でトランスポート統計を記録します。

hcp.mr.<YYYYMMDD_hhmmss_msec>.<pid>.statistics.transport.<protocol>

Rは実行記録を表し、指定する上記ディレクトリに次のファイル名でコマンドの実行記録を記録します。

hcp.mr.<YYYYMMDD_hhmmss_msec>.<pid>.out

Lはアプリケーションログを表し、指定すると上記ディレクトリに次のファイル名でログを記録します。

hcp.mr.<YYYYMMDD_hhmmss_msec>.<pid>.log

FULLは、"ATRL"を指定した場合と同じ動作をします。

THRUは、設定ファイルやコマンド引数の指定に従って記録の出力を行います。設定ファイルでアプリケーション統計(トランスポート統計)が有効に設定されている場合は、上記のファイル名にアプリケーション統計(トランスポート統計)を記録します。結果出力(アプリケーションログ)がファイル出力に設定されている場合(-vオプション未指定、-lオプション指定)は、上記のファイル名に実行記録(ログ)を記録します。

--
例:
[user@localhost ~]$ hcp --multi-run=/var/tmp:ATR // ログは標準出力に出す。他は、/var/tmp配下に出力
--

ソフトウェアの情報確認

V, version

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -V | --version
=========================================================================

hcpコマンドのバージョンを表示します。

--
例:
[user@localhost ~]$ hcp -V
hcp client (hcp) 1.5.8_1 / Linux (HpFP2 2.0.0.91_26 WSAPI 0.0.1.36 WS 4.2.0-2)
--

config-test

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --config-test
=========================================================================

hcpコマンドの入力パラメータ及び設定情報を出力します。

--
例:
[user@localhost ~]$ hcp --config-test
...

-- [Sources] ---------------------------------------------------------------
-- [Destination] -----------------------------------------------------------
-- [Command Options] -------------------------------------------------------
permission : disable
recursive : disable
anydirs : disable
regex : disable
verify : disable
compress : disable
copy-linkfile : disable (don't copy symlink file)
follow-linkdir : disable (don't follow symlink directory)
dereference-src: disable
no-emptyfile : disable (copy)
no-emptydir : disable (copy)
no-dotfile : disable (copy)
no-dotdir : disable (copy)
copy-hidden : disable (don't copy)
archive-check : disable (don't check archive property)
resume : disable
no-send : disable
no-diskio : disable
copy-mode : - [ALLCOPY]
overwrite : - [FORCE]
fail-action : - [HALT]
source-file : -
source-file-host : -
port : -
quiet : disable
auto-resume : disable
user : -
password : -
version : disable
help : disable
mcd : -
-- [Configuration Parameters] ----------------------------------------------
AtomicLikeSaving : no .tmp NONE [threshold=0]
PubkeyAuthentication : yes
WinLogonUserAuthentication : yes
PAMAuthentication : yes
LocalPasswordAuthentication : yes
NumberOfPasswordPrompts : 3
CompressLevel : -1
StrictHostKeyChecking : ask
IdentityFile : - [~/.ssh/id_rsa ~/.ssh/id_ecdsa ~/.ssh/id_ed25519 ~/.hcp/id_rsa ~/.hcp/id_ecdsa ~/.hcp/id_ed25519]
MaxReceiveRate : 100000000000
MaxSendRate : 100000000000
MaxConnectionReceiveRate : 100000000000
MaxConnectionSendRate : 100000000000
TransportTimeout : 180 sec
FileLock : no
AcceptableCryptMethod : AES256/GCM AES256/CTR/VMAC AES256/CBC AES128/CBC [Intel:AES-NI=yes]
AcceptableDigestMethod : XXH3 SHA256 SHA160
-- [Environment Variables] -------------------------------------------------
USER : user
LOGNAME : user
HCP_PASSWORD :
HCP_WS_PROXY :
----------------------------------------------------------------------------

Please type '--config-test --config-test ...' for more details.
--

より詳細な設定出力を確認する場合は、続けて--config-testを指定します(他のクライアントのコマンドも同様)。

h, help

=========================================================================
対応OS : Linux / Windows / Mac
書式 : -h | --help
=========================================================================

hcpコマンドのヘルプを表示します。

--
例:
[user@localhost ~]$ hcp -h
--

システム動作環境設定

config-file

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --config-file=<config-file-path>
-------------------------------------------------------------------------
config-file-path
既定値 : なし
値の範囲 : ファイルシステムのパス文字列
=========================================================================

hcpコマンドが使用する設定ファイルのパスを指定します。

hcpコマンドは、次の順に設定ファイルの読込みを行います。

  1. /etc/hcp/hcp.conf
  2. \<ユーザホームディレクトリ>/.hcp/hcp.conf
  3. \<本オプションで指定されたパス>

ファイルが存在しない場合は、読込みはスキップされます。いずれのファイルでも設定ファイルの読込みが成功しなかった場合は、設定ファイルの読込みエラーとなり動作は停止します。

--
例:
[user@localhost ~]$ hcp --config-file=hcp.conf ...
--

config-option

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --config-option=<config-file-option-desc>
-------------------------------------------------------------------------
cconfig-file-option-desc
既定値 : なし
値の範囲 : 設定ファイルに記述する設定項目の内容
=========================================================================

設定ファイルの設定項目をコマンドラインの引数から指定します。設定ファイルに記述する代わりにコマンドラインから指定したい場合などに使用します。

本オプションで指定した値は、設定ファイルの設定が反映された後に上書き設定されます。

--
例:
[user@localhost ~]$ hcp --config-option="DiagnosticLog DEBUG" ...
--

show-config-options

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --show-config-options
=========================================================================

コマンドで使用できる設定ファイルの設定項目名を表示します。

--
例:
[user@localhost ~]$ hcp --show-config-options ...
--

include-conf-from-cwd

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --include-conf-from-cwd
=========================================================================

設定ファイルのIncludeに相対パスが記述された場合に、実行ディレクトリからの相対パスでインクルードするファイルを探します。

no-earlier-serv-compat

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --no-earlier-serv-compat
=========================================================================

接続するサーバのバージョンが古い場合に行われるサーバ後方互換対応を無効にします。この互換対応は、特定の機能を使用しない場合に実行されることがあります。この動作を無効にします(従来通りクライアントが古い場合のみ後方互換動作を行う)。後方互換対応が動作する条件は、後述の「サーバ後方互換対応条件表」を参照してください。

システムの情報確認

system-info

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --system-info
=========================================================================

システム情報を表示します。次の内容が表示されます。

  • CPUブランド名
  • 物理プロセッサ数及び論理プロセッサ数
  • AES等ハードウェアアクセラレーション情報
  • システムメモリ容量
  • カーネル情報 (Linux / Mac)
  • OS情報
  • ホスト名

2回指定すると次の情報を表示します。

  • ディスク消費情報 (df出力 Linux / Mac)
  • ネットワークインターフェース詳細情報
    --
    例:
    [user@localhost ~]$ hcp --system-info ...
    --

run-host-benchmark

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --run-host-benchmark
=========================================================================

次の項目に関してホスト性能の測定を行います。

  • セキュリティ通信性能 (AES, GCM/CTR/CBCモード, MD5, SHA1, SHA256)
  • ファイルデータ検査性能 (XXH3, Parity)
  • ディスク読書性能 (Cached, Direct I/O)
  • メモリコピー性能

二回指定すると次の項目に関して測定条件を追加してより詳細な測定を行います。

  • セキュリティ通信性能測定 (追加のブロックサイズまたは並列度に応じたAES暗号性能測定)
  • ファイルデータ検査性能 (Parity計算測定)
  • ディスク読書性能 (ブロックサイズに応じた測定)
  • メモリコピー性能 (並列度を上げて測定)

Direct I/O性能測定とディスク読書性能の詳細測定はLinux版でのみ使用できます。

--
例:
[user@localhost ~]$ hcp --run-host-benchmark ...
--

run-host-benchmark-categories

=========================================================================
対応OS : Linux / Windows / Mac
書式 : --run-host-benchmark-categories=<categories>
-------------------------------------------------------------------------
categories
既定値 : all
値の範囲 : secure, integrity, disk, memory, all
=========================================================================

ホスト性能の計測において、計測を実施するカテゴリを指定します。次の値を指定できます。

  • secure (セキュリティ通信性能)
  • integrity (ファイルデータ検査性能)
  • disk (ディスク読書性能)
  • memory (メモリコピー性能)
  • all (上記すべて)

計測時間が長い場合に、計測を特定の項目に絞りたい場合などに使用します。

--
例:
[user@localhost ~]$ hcp --run-host-benchmark-categories=disk,memory ...
--