1pdsh(1) General Commands Manual pdsh(1)
2
3
4
6 pdcp - copy files to groups of hosts in parallel
7 rpdcp - (reverse pdcp) copy files from a group of hosts in parallel
8
9
11 pdcp [options]... src [src2...] dest
12 rpdcp [options]... src [src2...] dir
13
14
16 pdcp is a variant of the rcp(1) command. Unlike rcp(1), which copies
17 files to a single remote host, pdcp can copy files to multiple remote
18 hosts in parallel. However, pdcp does not recognize files in the for‐
19 mat ``rname@rhost:path,'' therefore all source files must be on the
20 local host machine. Destination nodes must be listed on the pdcp com‐
21 mand line using a suitable target nodelist option (See the OPTIONS sec‐
22 tion below). Each destination node listed must have pdcp installed for
23 the copy to succeed.
24
25 When pdcp receives SIGINT (ctrl-C), it lists the status of current
26 threads. A second SIGINT within one second terminates the program.
27 Pending threads may be canceled by issuing ctrl-Z within one second of
28 ctrl-C. Pending threads are those that have not yet been initiated, or
29 are still in the process of connecting to the remote host.
30
31 Like pdsh(1), the functionality of pdcp may be supplemented by dynami‐
32 cally loadable modules. In pdcp, the modules may provide a new connect
33 protocol (replacing the standard rsh(1) protocol), filtering options
34 (e.g. excluding hosts that are down), and/or host selection options
35 (e.g. -a selects all nodes from a local config file). By default, pdcp
36 requires at least one "rcmd" module to be loaded (to provide the chan‐
37 nel for remote copy).
38
39
41 rpdcp performs a reverse parallel copy. Rather than copying files to
42 remote hosts, files are retrieved from remote hosts and stored locally.
43 All directories or files retrieved will be stored with their remote
44 hostname appended to the filename. The destination file must be a
45 directory when this option is used.
46
47 In other respects, rpdcp is exactly like pdcp, and further statements
48 regarding pdcp in this manual also apply to rpdcp.
49
50
52 The method by which pdcp connects to remote hosts may be selected at
53 runtime using the -R option (See OPTIONS below). This functionality is
54 ultimately implemented via dynamically loadable modules, and so the
55 list of available options may be different from installation to instal‐
56 lation. A list of currently available rcmd modules is printed when
57 using any of the -h, -V, or -L options. The default rcmd module will
58 also be displayed with the -h and -V options.
59
60 A list of rcmd modules currently distributed with pdcp follows.
61
62 rsh Uses an internal, thread-safe implementation of BSD rcmd(3) to
63 run commands using the standard rsh(1) protocol.
64
65 ssh Uses a variant of popen(3) to run multiple copies of the ssh(1)
66 command.
67
68 mrsh This module uses the mrsh(1) protocol to execute jobs on remote
69 hosts. The mrsh protocol uses a credential based authentica‐
70 tion, forgoing the need to allocate reserved ports. In other
71 aspects, it acts just like rsh.
72
73 krb4 The krb4 module allows users to execute remote commands after
74 authenticating with kerberos. Of course, the remote rshd dae‐
75 mons must be kerberized.
76
77 xcpu The xcpu module uses the xcpu service to execute remote com‐
78 mands.
79
80
82 The list of available pdcp options is determined at runtime by supple‐
83 menting the list of standard pdcp options with any options provided by
84 loaded rcmd and misc modules. In some cases, options provided by mod‐
85 ules may conflict with each other. In these cases, the modules are
86 incompatible and the first module loaded wins.
87
88
90 -w host,host,...
91 Target the specified list of hosts. Do not use with any other
92 node selection options (e.g. -a, -g if they are available). No
93 spaces are allowed in the comma-separated list. A list consist‐
94 ing of a single `-' character causes the target hosts to be read
95 from stdin, one per line. The host list may contain hostlist
96 expressions of the form ``host[1-5,7]''. For more information
97 about the hostlist format, see the HOSTLIST EXPRESSIONS section
98 below.
99
100 -x host,host,...
101 Exclude the specified hosts. May be specified in conjunction
102 with other target node list options such as -a and -g (when
103 available). Hostlists may also be specified to the -x option
104 (see HOSTLIST EXPRESSIONS secion below).
105
106
108 -h Output usage menu and quit. A list of available rcmd modules
109 will be printed at the end of the usage message.
110
111 -q List option values and the target nodelist and exit without
112 action.
113
114 -b Disable ctrl-C status feature so that a single ctrl-C kills par‐
115 allel copy. (Batch Mode)
116
117 -r Copy directories recursively.
118
119 -p Preserve modification time and modes.
120
121 -e PATH
122 Explicitly specify path to remote pdcp binary instead of using
123 the locally executed path.
124
125 -l user
126 This option may be used to copy files as another user, subject
127 to authorization. For BSD rcmd, this means the invoking user and
128 system must be listed in the user´s .rhosts file (even for
129 root).
130
131 -t seconds
132 Set the connect timeout. Default is 10 seconds.
133
134 -f number
135 Set the maximum number of simultaneous remote copies to number.
136 The default is 32.
137
138 -R name
139 Set rcmd module to name. This option may also be set via the
140 PDSH_RCMD_TYPE environment variable. A list of available rcmd
141 modules may be obtained via either the -h or -L options.
142
143 -M name,...
144 When multiple misc modules provide the same options to pdsh, the
145 first module initialized "wins" and subsequent modules are not
146 loaded. The -M option allows a list of modules to be specified
147 that will be force-initialized before all others, in-effect
148 ensuring that they load without conflict (unless they conflict
149 with eachother). This option may also be set via the
150 PDSH_MISC_MODULES environment variable.
151
152 -L List info on all loaded pdcp modules and quit.
153
154 -d Include more complete thread status when SIGINT is received, and
155 display connect and command time statistics on stderr when done.
156
157 -V Output pdcp version information, along with list of currently
158 loaded modules, and exit.
159
160
161
163 As noted in sections above, pdcp accepts ranges of hostnames in the
164 general form: prefix[n-m,l-k,...], where n < m and l < k, etc., as an
165 alternative to explicit lists of hosts. This form should not be con‐
166 fused with regular expression character classes (also denoted by
167 ``[]''). For example, foo[19] does not represent foo1 or foo9, but
168 rather represents a degenerate range: foo19.
169
170 This range syntax is meant only as a convenience on clusters with a
171 prefixNN naming convention and specification of ranges should not be
172 considered necessary -- the list foo1,foo9 could be specified as such,
173 or by the range foo[1,9].
174
175 Some examples of range usage follow:
176
177
178 Copy /etc/hosts to foo01,foo02,...,foo05
179 pdcp -w foo[01-05] /etc/hosts /etc
180
181 Copy /etc/hosts to foo7,foo9,foo10
182 pdcp -w foo[7,9-10] /etc/hosts /etc
183
184 Copy /etc/hosts to foo0,foo4,foo5
185 pdcp -w foo[0-5] -x foo[1-3] /etc/hosts /etc
186
187
188 As a reminder to the reader, some shells will interpret brackets ('['
189 and ']') for pattern matching. Depending on your shell, it may be nec‐
190 essary to enclose ranged lists within quotes. For example, in tcsh,
191 the first example above should be executed as:
192
193 pdcp -w "foo[01-05]" /etc/hosts /etc
194
195
197 Pdsh/pdcp was originally a rewrite of IBM dsh(1) by Jim Garlick <gar‐
198 lick@llnl.gov> on LLNL's ASCI Blue-Pacific IBM SP system. It is now
199 also used on Linux clusters at LLNL.
200
201
203 When using ssh for remote execution, stderr of ssh to be folded in with
204 that of the remote command. When invoked by pdcp, it is not possible
205 for ssh to prompt for confirmation if a host key changes, prompt for
206 passwords if RSA keys are not configured properly, etc.. Finally, the
207 connect timeout is only adjustable with ssh when the underlying ssh
208 implementation supports it, and pdsh has been built to use the correct
209 option.
210
211
213 pdsh(1)
214
215
216
217pdsh-2.22 linux-gnu pdsh(1)