<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<!-- $Id$ -->

<refentry id="gfpcopy.1">

<refentryinfo><date>27 Aug 2015</date></refentryinfo>

<refmeta>
<refentrytitle>gfpcopy</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Gfarm</refmiscinfo>
</refmeta>

<refnamediv id="name">
<refname>gfpcopy</refname>
<refpurpose>ファイルを並列にコピーする</refpurpose>
</refnamediv>

<refsynopsisdiv id="synopsis">
<cmdsynopsis sepchar=" ">
  <command moreinfo="none">gfpcopy</command>
  <arg choice="opt" rep="norepeat">-nqvdpPU</arg>
  <arg choice="opt" rep="norepeat">-X <replaceable>regexp</replaceable></arg>
  <arg choice="opt" rep="norepeat">-S <replaceable>source-domainname</replaceable></arg>
  <arg choice="opt" rep="norepeat">-h <replaceable>source-hostfile</replaceable></arg>
  <arg choice="opt" rep="norepeat">-D <replaceable>destination-domainname</replaceable></arg>
  <arg choice="opt" rep="norepeat">-H <replaceable>destination-hostfile</replaceable></arg>
  <arg choice="opt" rep="norepeat">-j <replaceable>num-of-processes</replaceable></arg>
  <arg choice="opt" rep="norepeat">-J <replaceable>num-of-processes</replaceable></arg>
  <arg choice="opt" rep="norepeat">-M <replaceable>total-byte</replaceable></arg>
  <arg choice="opt" rep="norepeat">-z <replaceable>minimum-byte</replaceable></arg>
  <arg choice="opt" rep="norepeat">-Z <replaceable>maximum-byte</replaceable></arg>
  <arg choice="opt" rep="norepeat">-w <replaceable>way-of-scheduling</replaceable></arg>
  <arg choice="opt" rep="norepeat">-W <replaceable>kilobytes-for-threshold</replaceable></arg>
  <arg choice="opt" rep="norepeat">-s <replaceable>KB/s-to-simulate</replaceable></arg>
  <arg choice="opt" rep="norepeat">-F <replaceable>num-for-readahead</replaceable></arg>
  <arg choice="opt" rep="norepeat">-f</arg>
  <arg choice="opt" rep="norepeat">-b <replaceable>bufsize</replaceable></arg>
  <arg choice="opt" rep="norepeat">-e</arg>
  <arg choice="opt" rep="norepeat">-k</arg>
  <arg choice="plain" rep="norepeat"><replaceable>source-path</replaceable></arg>
  <arg choice="plain" rep="norepeat"><replaceable>destination-path</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>

<!-- body begins here -->

<refsect1 id="description"><title>DESCRIPTION</title>

<para>
<command moreinfo="none">gfpcopy</command>
は、複数のファイルを並列にコピーします。
</para>
<para>
<parameter moreinfo="none">source-path</parameter>
がディレクトリの場合は、その下にあるすべてのファイルとディ
レクトリをコピーします。
</para>
<para>
<parameter moreinfo="none">destination-path</parameter> が存在しない場合は、
ディレクトリを作成します。
<parameter moreinfo="none">destination-path</parameter> が存在する場合は、
そのディレクトリの下に<parameter moreinfo="none">source-path</parameter>
と同名のディレクトリを作成します。
</para>
<para>
作成先のホスト群を指定することにより、コピーしたファイルを格納するホス
トを指定することができます。ホスト群は、ドメイン名か、ホスト名を行ごと
に記述したホストファイルで指定します。ドメイン名とホストファイルを両方
指定した場合は、両方の条件に合うホスト群が選ばれます。また、作成元のホ
スト群も指定可能です。その場合、そのホスト群に存在するファイルのみコピー
されます。
</para>
<para>
<command moreinfo="none">gfpcopy</command>
は、ディレクトリを辿る際に、ディレクトリエントリ情報も並列に
取得します。
</para>
</refsect1>

<refsect1 id="source-path"><title>SOURCE PATH</title>
<para>
<parameter moreinfo="none">source-path</parameter> には以下を指定できます。
なお、HPSS上のファイルはコピーでき
ません。
</para>

<variablelist>

<varlistentry>
<term><parameter moreinfo="none">パス名</parameter></term>
<listitem>
<para>
ローカルファイルシステム上のパスを絶対パスまたは相対パスで指定しま
す。そのパスが gfarm2fs のマウントポイントの場合は、gfarm2fsを経由
せずに
Gfarm からコピーします。
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><parameter moreinfo="none">gfarm:...</parameter></term>
<listitem>
<para>
Gfarm URL で指定します。
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><parameter moreinfo="none">file:...</parameter></term>
<listitem>
<para>
ローカルファイルシステム上のパスを URL で指定します。
</para>
</listitem>
</varlistentry>

</variablelist>
</refsect1>

<refsect1 id="source-path"><title>DESTINATION PATH</title>
<para>
<parameter moreinfo="none">destination-path</parameter>
には以下を指定できます。
</para>

<variablelist>

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

<varlistentry>
<term><parameter moreinfo="none">gfarm:...</parameter></term>
<listitem>
<para>
ディレクトリを Gfarm URL で指定します。
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><parameter moreinfo="none">file:...</parameter></term>
<listitem>
<para>
ローカルファイルシステム上のディレクトリを URL で指定します。
</para>
</listitem>
</varlistentry>

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

</variablelist>
</refsect1>

<refsect1 id="options"><title>GFPCOPY OPTIONS</title>
<para>
以下は <command moreinfo="none">gfpcopy</command> 専用のオプションです。
</para>
<variablelist>

<varlistentry>
<term><option>-b</option> <parameter moreinfo="none">bufsize</parameter></term>
<listitem>
<para>
コピー時に使用するバッファサイズを指定します。
デフォルトは 64 KiByte (64 * 1024) です。
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><option>-f</option></term>
<listitem>
<para>
-f オプションを指定する場合、コピー先のファイルとコピー元のファイル
が、サイズまたは mtime が異なる場合に上書きします。
</para>
<para>
-f オプションを指定しない場合、コピー先のほうが mtime が古い場合
に、上書きします。
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><option>-e</option></term>
<listitem>
<para>
gfpcopy を複数同時に実行するために、コピー先にファイルが存在すれば
無視します。
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><option>-k</option></term>
<listitem>
<para>
シンボリックリンクをコピーしません。
</para>
</listitem>
</varlistentry>

</variablelist>
</refsect1>

<refsect1 id="common-options"><title>COMMON OPTIONS</title>
<para>

<command moreinfo="none">gfpcopy</command> には
<command moreinfo="none">gfprep</command> と共通のオプションがあります。
<command moreinfo="none">gfprep</command> のマニュアル
を参照してください。
</para>
</refsect1>

<refsect1 id="examples"><title>EXAMPLES</title>
<para>
ディレクトリ以下すべてをコピーします。
</para>
<literallayout format="linespecific" class="normal">
$ gfpcopy gfarm:///dir file:///tmp/dir
</literallayout>
<literallayout format="linespecific" class="normal">
$ gfpcopy file:///tmp/dir gfarm:///dir
</literallayout>
<literallayout format="linespecific" class="normal">
$ gfpcopy gfarm:///dir1 gfarm:///dir2
</literallayout>
<literallayout format="linespecific" class="normal">
$ gfpcopy gfarm:///dir hpss:///tmp/dir
</literallayout>
<literallayout format="linespecific" class="normal">
$ cd /mnt/gfarm2fs
$ gfpcopy dir /tmp/dir
</literallayout>

 <para>
一つのファイルをコピーします。
</para>
<literallayout format="linespecific" class="normal">
$ gfpcopy gfarm:///dir/file file:///dir
</literallayout>
<literallayout format="linespecific" class="normal">
$ cd /mnt/gfarm2fs
$ gfpcopy file /tmp/dir
</literallayout>
</refsect1>

<refsect1 id="notes"><title>NOTES</title>
<para>
<command moreinfo="none">gfmd</command>と<command moreinfo="none">gfpcopy</command> が距離的に離れている場合には、
<command moreinfo="none">gfpcopy</command> の動作が遅くなりま
す。そのような場合には、-j または -J オプションに大きな値を指定すると、
性能が改善するかもしれません。
</para>
</refsect1>

<refsect1 id="see-also"><title>SEE ALSO</title>
<para>
  <citerefentry>
  <refentrytitle>gfprep</refentrytitle><manvolnum>1</manvolnum>
  </citerefentry>,
  <citerefentry>
  <refentrytitle>gfreg</refentrytitle><manvolnum>1</manvolnum>
  </citerefentry>,
  <citerefentry>
  <refentrytitle>gfexport</refentrytitle><manvolnum>1</manvolnum>
  </citerefentry>,
  <citerefentry>
  <refentrytitle>gfarm2.conf</refentrytitle><manvolnum>5</manvolnum>
  </citerefentry>
</para>
</refsect1>

</refentry>
