gfpcopy

## Name

gfpcopy — copy Gfarm files in parallel

## Synopsis

`gfpcopy` [-nqvdpPU] [-X `regexp`] [-S `source-domainname`] [-h `source-hostfile`] [-D `destination-domainname`] [-H `destination-hostfile`] [-j `num-of-processes`] [-J `num-of-processes`] [-M `total-byte`] [-z `minimum-byte`] [-Z `maximum-byte`] [-w `way-of-scheduling`] [-W `kilobytes-for-threshold`] [-s `KB/s-to-simulate`] [-F `num-for-readahead`] [-f] [-b `bufsize`] [-e] [-k] `source-path` `destination-path`

## DESCRIPTION

gfpcopy は、 複数のファイルを並列にコピーします。

`source-path` がディレクトリの場合は、 その下にあるすべてのファイルとディレクトリをコピーします。

`destination-path` が存在しない場合は、 ディレクトリを作成します。 `destination-path` が存在する場合は、 そのディレクトリの下に `source-path` のディレクトリと同名のディレクトリを作成します。

転送先や転送元のホスト群を指定するには、ドメイン名で指定するか、 ホスト名を行ごとに記述したホストリストファイルを指定します。 ドメイン名とホストリストファイルを両方指定した場合は、 両方の条件に合うホスト群を決定します。 転送元ホスト群を指定した場合、 そのホストに存在するファイルのみコピーされます。

gfpcopy は、ディレクトリを辿る際に、 ディレクトリエントリ情報も並列に取得します。

## SOURCE PATH

`source-path` には以下を指定できます。 HPSS 上のファイルをコピーできません。

`gfarm:...`

  Gfarm URL で指定します。

`file:...`

  ローカルファイルシステム上のパスを URL で指定します。

`任意`

  ローカルファイルシステム上のパスを絶対パスまたは相対パスで指定します。 そのパスが gfarm2fs のマウントポイントの場合は、 gfarm2fs を経由せずに Gfarm からコピーします。

## DESTINATION PATH

`destination-path` には以下を指定できます。

`gfarm:...`

  ディレクトリを Gfarm URL で指定します。

`file:...`

  ローカルファイルシステム上のディレクトリを URL で指定します。

`hpss:...`

  HPSS 上に存在するディレクトリを URL で指定します。 その下に `source-path` と同名のディレクトリが存在する場合はエラーになります。 HPSS に対して差分コピーはできません。 hpss:. や hpss:dir のように相対パスで指定することもできます。

`任意`

  ローカルファイルシステム上のディレクトリを絶対パスまたは相対パスで指定します。 そのパスが gfarm2fs のマウントポイントの場合は、 gfarm2fs を経由せずに Gfarm へコピーします。

## GFPCOPY OPTIONS

以下は gfpcopy 専用のオプションです。

`-b` `bufsize`

  コピー時に使用するバッファサイズを指定します。

  標準は 64 キビバイト (64 * 1024) です。

`-f`

  -f オプションを指定する場合、コピー先のファイルとコピー元のファイルが、 サイズまたは mtime が異なる場合に上書きします。

  -f オプションを指定しない場合、 コピー先のほうが mtime が古い場合に、上書きします。

`-e`

  gfpcopy を複数同時に実行するために、コピー先にファイルが存在すれば無視 します。

`-k`

  シンボリックリンクをコピーしません。

## COMMON OPTIONS

gfpcopy には gfprep と共通のオプションがあります。 gfprep のマニュアルを参照してください。

## EXAMPLES

ディレクトリ以下すべてをコピーします。

$ gfpcopy gfarm:///dir file:///tmp/dir

$ gfpcopy file:///tmp/dir gfarm:///dir

$ gfpcopy gfarm:///dir1 gfarm:///dir2

$ gfpcopy gfarm:///dir hpss:///tmp/dir

$ cd /mnt/gfarm2fs
$ gfpcopy dir /tmp/dir

一つのファイルをコピーします。

$ gfpcopy gfarm:///dir/file file:///dir

$ cd /mnt/gfarm2fs
$ gfpcopy file /tmp/dir

## NOTES

gfmd と gfpcopy が距離的に離れている場合には、 gfpcopy の動作が遅くなります。 そのような場合には、-j または -J オプションに大きな値を指定すると、 性能が改善するかもしれません。

## SEE ALSO

gfprep(1), gfreg(1), gfexport(1), gfarm2.conf(5)