Provided by: pdsh_2.31-3build2_amd64 bug


       pdcp - copy files to groups of hosts in parallel
       rpdcp - (reverse pdcp) copy files from a group of hosts in parallel


       pdcp [options]... src [src2...] dest
       rpdcp [options]... src [src2...] dir


       pdcp  is  a  variant of the rcp(1) command.  Unlike rcp(1), which copies files to a single
       remote host, pdcp can copy files to multiple remote hosts in parallel.  However, pdcp does
       not recognize files in the format ``rname@rhost:path,'' therefore all source files must be
       on the local host machine.  Destination nodes must be listed  on  the  pdcp  command  line
       using a suitable target nodelist option (See the OPTIONS section below).  Each destination
       node listed must have pdcp installed for the copy to succeed.

       When pdcp receives SIGINT (ctrl-C), it lists the status  of  current  threads.   A  second
       SIGINT  within  one  second  terminates  the  program.  Pending threads may be canceled by
       issuing ctrl-Z within one second of ctrl-C.  Pending threads are those that have  not  yet
       been initiated, or are still in the process of connecting to the remote host.

       Like  pdsh(1),  the  functionality  of  pdcp  may  be supplemented by dynamically loadable
       modules. In pdcp, the modules may provide a new connect protocol (replacing  the  standard
       rsh(1)  protocol),  filtering  options  (e.g.  excluding hosts that are down), and/or host
       selection options (e.g. -a selects all nodes from a local config file).  By default,  pdcp
       requires at least one "rcmd" module to be loaded (to provide the channel for remote copy).


       rpdcp  performs a reverse parallel copy.  Rather than copying files to remote hosts, files
       are retrieved from remote hosts and stored locally.  All directories  or  files  retrieved
       will  be stored with their remote hostname appended to the filename.  The destination file
       must be a directory when this option is used.

       In other respects, rpdcp is exactly like pdcp, and further statements  regarding  pdcp  in
       this manual also apply to rpdcp.


       The  method by which pdcp connects to remote hosts may be selected at runtime using the -R
       option (See OPTIONS below).  This functionality is ultimately implemented via  dynamically
       loadable  modules, and so the list of available options may be different from installation
       to installation. A list of currently available rcmd modules is printed when using  any  of
       the  -h, -V, or -L options. The default rcmd module will also be displayed with the -h and
       -V options.

       A list of rcmd modules currently distributed with pdcp follows.

       rsh     Uses an internal, thread-safe implementation of BSD rcmd(3) to run commands  using
               the standard rsh(1) protocol.

       ssh     Uses a variant of popen(3) to run multiple copies of the ssh(1) command.

       mrsh    This  module  uses the mrsh(1) protocol to execute jobs on remote hosts.  The mrsh
               protocol uses a credential based authentication, forgoing  the  need  to  allocate
               reserved ports. In other aspects, it acts just like rsh.

       krb4    The  krb4 module allows users to execute remote commands after authenticating with
               kerberos. Of course, the remote rshd daemons must be kerberized.

       xcpu    The xcpu module uses the xcpu service to execute remote commands.


       The list of available pdcp options is determined at runtime by supplementing the  list  of
       standard  pdcp options with any options provided by loaded rcmd and misc modules.  In some
       cases, options provided by modules may conflict with  each  other.  In  these  cases,  the
       modules are incompatible and the first module loaded wins.

Standard target nodelist options

       -w TARGETS,...
              Target  and  or  filter the specified list of hosts. Do not use with any other node
              selection options (e.g. -a, -g, if they are available). No spaces  are  allowed  in
              the  comma-separated  list.   Arguments in the TARGETS list may include normal host
              names, a range of hosts in hostlist format (See HOSTLIST EXPRESSIONS), or a  single
              `-' character to read the list of hosts on stdin.

              If a host or hostlist is preceded by a `-' character, this causes those hosts to be
              explicitly excluded. If the argument is preceded by a single `^' character,  it  is
              taken  to be the path to file containing a list of hosts, one per line. If the item
              begins with a `/' character, it is taken  as  a  regular  expression  on  which  to
              filter  the  list  of  hosts  (a  regex  argument may also be optionally trailed by
              another '/', e.g.  /node.*/). A regex or file name argument may also  be  preceeded
              by a minus `-' to exclude instead of include thoses hosts.

              A  list of hosts may also be preceded by "user@" to specify a remote username other
              than the default, or "rcmd_type:" to specify an alternate rcmd connection type  for
              these  hosts.  When  used  together,  the  rcmd  type must be specified first, e.g.
              "ssh:user1@host0" would use ssh to connect to host0 as user "user1."

       -x host,host,...
              Exclude the specified hosts. May be specified in conjunction with other target node
              list options such as -a and -g (when available). Hostlists may also be specified to
              the -x option (see the HOSTLIST EXPRESSIONS section below).  Arguments  to  -x  may
              also  be  preceeded  by  the filename (`^') and regex ('/') characters as described
              above, in which case the resulting hosts are excluded as if they had been given  to
              -w and preceeded with the minus `-' character.

Standard pdcp options

       -h     Output usage menu and quit. A list of available rcmd modules will be printed at the
              end of the usage message.

       -q     List option values and the target nodelist and exit without action.

       -b     Disable ctrl-C status feature so that a single ctrl-C kills parallel  copy.  (Batch

       -r     Copy directories recursively.

       -p     Preserve modification time and modes.

       -e PATH
              Explicitly specify path to remote pdcp binary instead of using the locally executed
              path. Can also be set via the environment variable PDSH_REMOTE_PDCP_PATH.

       -l user
              This option may be used to copy files as another user,  subject  to  authorization.
              For  BSD rcmd, this means the invoking user and system must be listed in the userĀ“s
              .rhosts file (even for root).

       -t seconds
              Set the connect timeout. Default is 10 seconds.

       -f number
              Set the maximum number of simultaneous remote copies to number.  The default is 32.

       -R name
              Set rcmd module to name. This  option  may  also  be  set  via  the  PDSH_RCMD_TYPE
              environment  variable.  A list of available rcmd modules may be obtained via either
              the -h or -L options.

       -M name,...
              When multiple misc modules provide the same  options  to  pdsh,  the  first  module
              initialized  "wins"  and subsequent modules are not loaded.  The -M option allows a
              list of modules to be specified that will be force-initialized before  all  others,
              in-effect  ensuring  that  they  load  without  conflict (unless they conflict with
              eachother). This option may also  be  set  via  the  PDSH_MISC_MODULES  environment

       -L     List info on all loaded pdcp modules and quit.

       -d     Include  more  complete  thread status when SIGINT is received, and display connect
              and command time statistics on stderr when done.

       -V     Output pdcp version information, along with list of currently loaded  modules,  and


       As  noted  in  sections  above,  pdcp  accepts  ranges  of  hostnames in the general form:
       prefix[n-m,l-k,...], where n < m and l < k, etc., as an alternative to explicit  lists  of
       hosts.   This  form should not be confused with regular expression character classes (also
       denoted by ``[]''). For example, foo[19] does not  represent  foo1  or  foo9,  but  rather
       represents a degenerate range: foo19.

       This  range  syntax  is  meant  only  as  a convenience on clusters with a prefixNN naming
       convention and specification of ranges should not be  considered  necessary  --  the  list
       foo1,foo9 could be specified as such, or by the range foo[1,9].

       Some examples of range usage follow:

       Copy /etc/hosts to foo01,foo02,...,foo05
           pdcp -w foo[01-05] /etc/hosts /etc

       Copy /etc/hosts to foo7,foo9,foo10
           pdcp -w foo[7,9-10] /etc/hosts /etc

       Copy /etc/hosts to foo0,foo4,foo5
           pdcp -w foo[0-5] -x foo[1-3] /etc/hosts /etc

       As a reminder to the reader, some shells will interpret brackets ('[' and ']') for pattern
       matching.  Depending on your shell, it may be necessary to  enclose  ranged  lists  within
       quotes.  For example, in tcsh, the first example above should be executed as:

           pdcp -w "foo[01-05]" /etc/hosts /etc


       Pdsh/pdcp  was  originally  a  rewrite  of IBM dsh(1) by Jim Garlick <> on
       LLNL's ASCI Blue-Pacific IBM SP system.  It is now also used on Linux clusters at LLNL.


       When using ssh for remote execution, stderr of ssh to be folded in with that of the remote
       command.  When invoked by pdcp, it is not possible for ssh to prompt for confirmation if a
       host key changes, prompt for passwords if RSA keys  are  not  configured  properly,  etc..
       Finally,  the  connect  timeout  is  only  adjustable  with  ssh  when  the underlying ssh
       implementation supports it, and pdsh has been built to use the correct option.