pec2 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pec2/cli.rb +1 -9
- data/lib/pec2/pssh.rb +58 -28
- data/lib/pec2/version.rb +1 -1
- data/pec2.gemspec +4 -1
- data/spec/cli_spec.rb +0 -1
- data/spec/pssh_spec.rb +1 -54
- metadata +46 -24
- data/exe/bin/pnuke +0 -96
- data/exe/bin/prsync +0 -126
- data/exe/bin/pscp +0 -108
- data/exe/bin/pslurp +0 -129
- data/exe/bin/pssh +0 -118
- data/exe/bin/pssh-askpass +0 -11
- data/exe/man/man1/pnuke.1 +0 -268
- data/exe/man/man1/prsync.1 +0 -299
- data/exe/man/man1/pscp.1 +0 -271
- data/exe/man/man1/pslurp.1 +0 -280
- data/exe/man/man1/pssh.1 +0 -368
- data/exe/psshlib/__init__.py +0 -0
- data/exe/psshlib/askpass_client.py +0 -102
- data/exe/psshlib/askpass_server.py +0 -101
- data/exe/psshlib/cli.py +0 -110
- data/exe/psshlib/color.py +0 -39
- data/exe/psshlib/manager.py +0 -345
- data/exe/psshlib/psshutil.py +0 -108
- data/exe/psshlib/task.py +0 -288
- data/exe/psshlib/version.py +0 -1
data/exe/bin/pssh-askpass
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
|
3
|
-
import os
|
4
|
-
import sys
|
5
|
-
|
6
|
-
parent, bindir = os.path.split(os.path.dirname(os.path.abspath(sys.argv[0])))
|
7
|
-
if os.path.exists(os.path.join(parent, 'psshlib')):
|
8
|
-
sys.path.insert(0, parent)
|
9
|
-
|
10
|
-
from psshlib.askpass_client import askpass_main
|
11
|
-
askpass_main()
|
data/exe/man/man1/pnuke.1
DELETED
@@ -1,268 +0,0 @@
|
|
1
|
-
.\" Man page for pssh. See "man 7 man" and "man man-pages" for formatting info.
|
2
|
-
.TH pnuke 1 "January 24, 2012"
|
3
|
-
|
4
|
-
.SH NAME
|
5
|
-
pnuke \(em parallel process kill program
|
6
|
-
|
7
|
-
|
8
|
-
.SH SYNOPSIS
|
9
|
-
.B pnuke
|
10
|
-
.RB [ \-vA ]
|
11
|
-
.RB [ \-h
|
12
|
-
.IR hosts_file ]
|
13
|
-
.RB [ \-H
|
14
|
-
.RI [ user @] host [: port ]]
|
15
|
-
.RB [ \-l
|
16
|
-
.IR user ]
|
17
|
-
.RB [ \-p
|
18
|
-
.IR par ]
|
19
|
-
.RB [ \-o
|
20
|
-
.IR outdir ]
|
21
|
-
.RB [ \-e
|
22
|
-
.IR errdir ]
|
23
|
-
.RB [ \-t
|
24
|
-
.IR timeout ]
|
25
|
-
.RB [ \-O
|
26
|
-
.IR options ]
|
27
|
-
.RB [ \-x
|
28
|
-
.IR args ]
|
29
|
-
.RB [ \-X
|
30
|
-
.IR arg ]
|
31
|
-
.I pattern
|
32
|
-
|
33
|
-
|
34
|
-
.SH DESCRIPTION
|
35
|
-
.PP
|
36
|
-
.B pnuke
|
37
|
-
is a program for killing processes in parallel on a number of hosts. It
|
38
|
-
provides features such as passing a password to ssh, saving output to files,
|
39
|
-
and timing out.
|
40
|
-
|
41
|
-
|
42
|
-
.SH OPTIONS
|
43
|
-
|
44
|
-
.TP
|
45
|
-
.BI \-h " host_file"
|
46
|
-
.PD 0
|
47
|
-
.TP
|
48
|
-
.BI \-\-hosts " host_file"
|
49
|
-
Read hosts from the given
|
50
|
-
.IR host_file .
|
51
|
-
Lines in the host file are of the form
|
52
|
-
.RI [ user @] host [: port ]
|
53
|
-
and can include blank lines and comments (lines beginning with "#").
|
54
|
-
If multiple host files are given (the
|
55
|
-
.B \-h
|
56
|
-
option is used more than once), then pnuke behaves as though these files
|
57
|
-
were concatenated together.
|
58
|
-
If a host is specified multiple times, then pnuke will connect the
|
59
|
-
given number of times.
|
60
|
-
|
61
|
-
.TP
|
62
|
-
.B \-H
|
63
|
-
.RI [ user @] host [: port ]
|
64
|
-
.PD 0
|
65
|
-
.TP
|
66
|
-
.B \-\-host
|
67
|
-
.RI [ user @] host [: port ]
|
68
|
-
.PD 0
|
69
|
-
.TP
|
70
|
-
.B \-H
|
71
|
-
.RI \(dq[ user @] host [: port ]
|
72
|
-
[
|
73
|
-
.RI [ user @] host [: port
|
74
|
-
] ... ]\(dq
|
75
|
-
.PD 0
|
76
|
-
.TP
|
77
|
-
.B \-\-host
|
78
|
-
.RI \(dq[ user @] host [: port ]
|
79
|
-
[
|
80
|
-
.RI [ user @] host [: port
|
81
|
-
] ... ]\(dq
|
82
|
-
.PD 0
|
83
|
-
.IP
|
84
|
-
Add the given host strings to the list of hosts. This option may be given
|
85
|
-
multiple times, and may be used in conjunction with the
|
86
|
-
.B \-h
|
87
|
-
option.
|
88
|
-
|
89
|
-
.TP
|
90
|
-
.BI \-l " user"
|
91
|
-
.PD 0
|
92
|
-
.TP
|
93
|
-
.BI \-\-user " user"
|
94
|
-
Use the given username as the default for any host entries that don't
|
95
|
-
specifically specify a user.
|
96
|
-
|
97
|
-
.TP
|
98
|
-
.BI \-p " parallelism"
|
99
|
-
.PD 0
|
100
|
-
.TP
|
101
|
-
.BI \-\-par " parallelism"
|
102
|
-
Use the given number as the maximum number of concurrent connections.
|
103
|
-
|
104
|
-
.TP
|
105
|
-
.BI \-t " timeout"
|
106
|
-
.PD 0
|
107
|
-
.TP
|
108
|
-
.BI \-\-timeout " timeout"
|
109
|
-
Make connections time out after the given number of seconds. With a value
|
110
|
-
of 0, pnuke will not timeout any connections.
|
111
|
-
|
112
|
-
.TP
|
113
|
-
.BI \-o " outdir"
|
114
|
-
.PD 0
|
115
|
-
.TP
|
116
|
-
.BI \-\-outdir " outdir"
|
117
|
-
Save standard output to files in the given directory. Filenames are of the
|
118
|
-
form
|
119
|
-
.RI [ user @] host [: port ][. num ]
|
120
|
-
where the user and port are only included for hosts that explicitly
|
121
|
-
specify them. The number is a counter that is incremented each time for hosts
|
122
|
-
that are specified more than once.
|
123
|
-
|
124
|
-
.TP
|
125
|
-
.BI \-e " errdir"
|
126
|
-
.PD 0
|
127
|
-
.TP
|
128
|
-
.BI \-\-errdir " errdir"
|
129
|
-
Save standard error to files in the given directory. Filenames are of the
|
130
|
-
same form as with the
|
131
|
-
.B \-o
|
132
|
-
option.
|
133
|
-
|
134
|
-
.TP
|
135
|
-
.BI \-x " args"
|
136
|
-
.PD 0
|
137
|
-
.TP
|
138
|
-
.BI \-\-extra-args " args"
|
139
|
-
Passes extra SSH command-line arguments (see the
|
140
|
-
.BR ssh (1)
|
141
|
-
man page for more information about SSH arguments).
|
142
|
-
This option may be specified multiple times.
|
143
|
-
The arguments are processed to split on whitespace, protect text within
|
144
|
-
quotes, and escape with backslashes.
|
145
|
-
To pass arguments without such processing, use the
|
146
|
-
.B \-X
|
147
|
-
option instead.
|
148
|
-
|
149
|
-
.TP
|
150
|
-
.BI \-X " arg"
|
151
|
-
.PD 0
|
152
|
-
.TP
|
153
|
-
.BI \-\-extra-arg " arg"
|
154
|
-
Passes a single SSH command-line argument (see the
|
155
|
-
.BR ssh (1)
|
156
|
-
man page for more information about SSH arguments). Unlike the
|
157
|
-
.B \-x
|
158
|
-
option, no processing is performed on the argument, including word splitting.
|
159
|
-
To pass multiple command-line arguments, use the option once for each
|
160
|
-
argument.
|
161
|
-
|
162
|
-
.TP
|
163
|
-
.BI \-O " options"
|
164
|
-
.PD 0
|
165
|
-
.TP
|
166
|
-
.BI \-\-options " options"
|
167
|
-
SSH options in the format used in the SSH configuration file (see the
|
168
|
-
.BR ssh_config (5)
|
169
|
-
man page for more information). This option may be specified multiple
|
170
|
-
times.
|
171
|
-
|
172
|
-
.TP
|
173
|
-
.B \-A
|
174
|
-
.PD 0
|
175
|
-
.TP
|
176
|
-
.B \-\-askpass
|
177
|
-
Prompt for a password and pass it to ssh. The password may be used for
|
178
|
-
either to unlock a key or for password authentication.
|
179
|
-
The password is transferred in a fairly secure manner (e.g., it will not show
|
180
|
-
up in argument lists). However, be aware that a root user on your system
|
181
|
-
could potentially intercept the password.
|
182
|
-
|
183
|
-
.TP
|
184
|
-
.B \-v
|
185
|
-
.PD 0
|
186
|
-
.TP
|
187
|
-
.B \-\-verbose
|
188
|
-
Include error messages from ssh with the
|
189
|
-
.B \-i
|
190
|
-
and
|
191
|
-
.B \e
|
192
|
-
options.
|
193
|
-
|
194
|
-
|
195
|
-
.\" .SH EXAMPLES
|
196
|
-
|
197
|
-
.\" .PP
|
198
|
-
.\" Connect to host1 and host2, and print "hello, world" from each:
|
199
|
-
.\" .RS
|
200
|
-
.\" pssh -i -H "host1 host2" echo "hello, world"
|
201
|
-
.\" .RE
|
202
|
-
|
203
|
-
|
204
|
-
.SH TIPS
|
205
|
-
|
206
|
-
.\" .PP
|
207
|
-
.\" If you have a set of hosts that you connect to frequently with specific
|
208
|
-
.\" options, it may be helpful to create an alias such as:
|
209
|
-
.\" .RS
|
210
|
-
.\" alias pssh_servers="pssh -h /path/to/server_list.txt -l root -A"
|
211
|
-
.\" .RE
|
212
|
-
|
213
|
-
.PP
|
214
|
-
The ssh_config file can include an arbitrary number of Host sections. Each
|
215
|
-
host entry specifies ssh options which apply only to the given host. Host
|
216
|
-
definitions can even behave like aliases if the HostName option is included.
|
217
|
-
This ssh feature, in combination with pssh host files, provides a tremendous
|
218
|
-
amount of flexibility.
|
219
|
-
|
220
|
-
|
221
|
-
.SH EXIT STATUS
|
222
|
-
|
223
|
-
.PP
|
224
|
-
The exit status codes from pnuke are as follows:
|
225
|
-
|
226
|
-
.TP
|
227
|
-
.B 0
|
228
|
-
Success
|
229
|
-
|
230
|
-
.TP
|
231
|
-
.B 1
|
232
|
-
Miscellaneous error
|
233
|
-
|
234
|
-
.TP
|
235
|
-
.B 2
|
236
|
-
Syntax or usage error
|
237
|
-
|
238
|
-
.TP
|
239
|
-
.B 3
|
240
|
-
At least one process was killed by a signal or timed out.
|
241
|
-
|
242
|
-
.TP
|
243
|
-
.B 4
|
244
|
-
All processes completed, but at least one ssh process reported an error
|
245
|
-
(exit status 255).
|
246
|
-
|
247
|
-
.TP
|
248
|
-
.B 5
|
249
|
-
There were no ssh errors, but at least one remote command had a non-zero exit
|
250
|
-
status.
|
251
|
-
|
252
|
-
|
253
|
-
.SH AUTHORS
|
254
|
-
.PP
|
255
|
-
Written by
|
256
|
-
Brent N. Chun <bnc@theether.org> and
|
257
|
-
Andrew McNabb <amcnabb@mcnabbs.org>.
|
258
|
-
|
259
|
-
http://code.google.com/p/parallel-ssh/
|
260
|
-
|
261
|
-
|
262
|
-
.SH SEE ALSO
|
263
|
-
.BR ssh (1),
|
264
|
-
.BR ssh_config(5),
|
265
|
-
.BR pssh (1),
|
266
|
-
.BR pscp (1),
|
267
|
-
.BR prsync (1),
|
268
|
-
.BR pslurp (1),
|
data/exe/man/man1/prsync.1
DELETED
@@ -1,299 +0,0 @@
|
|
1
|
-
.\" Man page for prsync. See "man 7 man" and "man man-pages" for formatting info.
|
2
|
-
.TH prsync 1 "January 24, 2012"
|
3
|
-
|
4
|
-
.SH NAME
|
5
|
-
prsync \(em parallel process kill program
|
6
|
-
|
7
|
-
|
8
|
-
.SH SYNOPSIS
|
9
|
-
.B prsync
|
10
|
-
.RB [ \-vAraz ]
|
11
|
-
.RB [ \-h
|
12
|
-
.IR hosts_file ]
|
13
|
-
.RB [ \-H
|
14
|
-
.RI [ user @] host [: port ]]
|
15
|
-
.RB [ \-l
|
16
|
-
.IR user ]
|
17
|
-
.RB [ \-p
|
18
|
-
.IR par ]
|
19
|
-
.RB [ \-o
|
20
|
-
.IR outdir ]
|
21
|
-
.RB [ \-e
|
22
|
-
.IR errdir ]
|
23
|
-
.RB [ \-t
|
24
|
-
.IR timeout ]
|
25
|
-
.RB [ \-O
|
26
|
-
.IR options ]
|
27
|
-
.RB [ \-x
|
28
|
-
.IR args ]
|
29
|
-
.RB [ \-X
|
30
|
-
.IR arg ]
|
31
|
-
.RB [ \-S
|
32
|
-
.IR args ]
|
33
|
-
.I local
|
34
|
-
.I remote
|
35
|
-
|
36
|
-
|
37
|
-
.SH DESCRIPTION
|
38
|
-
.PP
|
39
|
-
.B prsync
|
40
|
-
is a program for copying files in parallel to a number of hosts. It provides
|
41
|
-
features such as passing a password to ssh, saving output to files, and timing
|
42
|
-
out.
|
43
|
-
|
44
|
-
|
45
|
-
.SH OPTIONS
|
46
|
-
|
47
|
-
.TP
|
48
|
-
.BI \-h " host_file"
|
49
|
-
.PD 0
|
50
|
-
.TP
|
51
|
-
.BI \-\-hosts " host_file"
|
52
|
-
Read hosts from the given
|
53
|
-
.IR host_file .
|
54
|
-
Lines in the host file are of the form
|
55
|
-
.RI [ user @] host [: port ]
|
56
|
-
and can include blank lines and comments (lines beginning with "#").
|
57
|
-
If multiple host files are given (the
|
58
|
-
.B \-h
|
59
|
-
option is used more than once), then prsync behaves as though these files
|
60
|
-
were concatenated together.
|
61
|
-
If a host is specified multiple times, then prsync will connect the
|
62
|
-
given number of times.
|
63
|
-
|
64
|
-
.TP
|
65
|
-
.B \-H
|
66
|
-
.RI [ user @] host [: port ]
|
67
|
-
.PD 0
|
68
|
-
.TP
|
69
|
-
.B \-\-host
|
70
|
-
.RI [ user @] host [: port ]
|
71
|
-
.PD 0
|
72
|
-
.TP
|
73
|
-
.B \-H
|
74
|
-
.RI \(dq[ user @] host [: port ]
|
75
|
-
[
|
76
|
-
.RI [ user @] host [: port
|
77
|
-
] ... ]\(dq
|
78
|
-
.PD 0
|
79
|
-
.TP
|
80
|
-
.B \-\-host
|
81
|
-
.RI \(dq[ user @] host [: port ]
|
82
|
-
[
|
83
|
-
.RI [ user @] host [: port
|
84
|
-
] ... ]\(dq
|
85
|
-
.PD 0
|
86
|
-
.IP
|
87
|
-
Add the given host strings to the list of hosts. This option may be given
|
88
|
-
multiple times, and may be used in conjunction with the
|
89
|
-
.B \-h
|
90
|
-
option.
|
91
|
-
|
92
|
-
.TP
|
93
|
-
.BI \-l " user"
|
94
|
-
.PD 0
|
95
|
-
.TP
|
96
|
-
.BI \-\-user " user"
|
97
|
-
Use the given username as the default for any host entries that don't
|
98
|
-
specifically specify a user.
|
99
|
-
|
100
|
-
.TP
|
101
|
-
.BI \-p " parallelism"
|
102
|
-
.PD 0
|
103
|
-
.TP
|
104
|
-
.BI \-\-par " parallelism"
|
105
|
-
Use the given number as the maximum number of concurrent connections.
|
106
|
-
|
107
|
-
.TP
|
108
|
-
.BI \-t " timeout"
|
109
|
-
.PD 0
|
110
|
-
.TP
|
111
|
-
.BI \-\-timeout " timeout"
|
112
|
-
Make connections time out after the given number of seconds. With a value
|
113
|
-
of 0, prsync will not timeout any connections.
|
114
|
-
|
115
|
-
.TP
|
116
|
-
.BI \-o " outdir"
|
117
|
-
.PD 0
|
118
|
-
.TP
|
119
|
-
.BI \-\-outdir " outdir"
|
120
|
-
Save standard output to files in the given directory. Filenames are of the
|
121
|
-
form
|
122
|
-
.RI [ user @] host [: port ][. num ]
|
123
|
-
where the user and port are only included for hosts that explicitly
|
124
|
-
specify them. The number is a counter that is incremented each time for hosts
|
125
|
-
that are specified more than once.
|
126
|
-
|
127
|
-
.TP
|
128
|
-
.BI \-e " errdir"
|
129
|
-
.PD 0
|
130
|
-
.TP
|
131
|
-
.BI \-\-errdir " errdir"
|
132
|
-
Save standard error to files in the given directory. Filenames are of the
|
133
|
-
same form as with the
|
134
|
-
.B \-o
|
135
|
-
option.
|
136
|
-
|
137
|
-
.TP
|
138
|
-
.BI \-x " args"
|
139
|
-
.PD 0
|
140
|
-
.TP
|
141
|
-
.BI \-\-extra-args " args"
|
142
|
-
Passes extra rsync command-line arguments (see the
|
143
|
-
.BR rsync (1)
|
144
|
-
man page for more information about rsync arguments).
|
145
|
-
This option may be specified multiple times.
|
146
|
-
The arguments are processed to split on whitespace, protect text within
|
147
|
-
quotes, and escape with backslashes.
|
148
|
-
To pass arguments without such processing, use the
|
149
|
-
.B \-X
|
150
|
-
option instead.
|
151
|
-
|
152
|
-
.TP
|
153
|
-
.BI \-X " arg"
|
154
|
-
.PD 0
|
155
|
-
.TP
|
156
|
-
.BI \-\-extra-arg " arg"
|
157
|
-
Passes a single rsync command-line argument (see the
|
158
|
-
.BR rsync (1)
|
159
|
-
man page for more information about rsync arguments). Unlike the
|
160
|
-
.B \-x
|
161
|
-
option, no processing is performed on the argument, including word splitting.
|
162
|
-
To pass multiple command-line arguments, use the option once for each
|
163
|
-
argument.
|
164
|
-
|
165
|
-
.TP
|
166
|
-
.BI \-O " options"
|
167
|
-
.PD 0
|
168
|
-
.TP
|
169
|
-
.BI \-\-options " options"
|
170
|
-
SSH options in the format used in the SSH configuration file (see the
|
171
|
-
.BR ssh_config (5)
|
172
|
-
man page for more information). This option may be specified multiple
|
173
|
-
times.
|
174
|
-
|
175
|
-
.TP
|
176
|
-
.B \-A
|
177
|
-
.PD 0
|
178
|
-
.TP
|
179
|
-
.B \-\-askpass
|
180
|
-
Prompt for a password and pass it to ssh. The password may be used for
|
181
|
-
either to unlock a key or for password authentication.
|
182
|
-
The password is transferred in a fairly secure manner (e.g., it will not show
|
183
|
-
up in argument lists). However, be aware that a root user on your system
|
184
|
-
could potentially intercept the password.
|
185
|
-
|
186
|
-
.TP
|
187
|
-
.B \-v
|
188
|
-
.PD 0
|
189
|
-
.TP
|
190
|
-
.B \-\-verbose
|
191
|
-
Include error messages from rsync with the
|
192
|
-
.B \-i
|
193
|
-
and
|
194
|
-
.B \e
|
195
|
-
options.
|
196
|
-
|
197
|
-
.TP
|
198
|
-
.B \-r
|
199
|
-
.PD 0
|
200
|
-
.TP
|
201
|
-
.B \-\-recursive
|
202
|
-
Recursively copy directories.
|
203
|
-
|
204
|
-
.TP
|
205
|
-
.B \-a
|
206
|
-
.PD 0
|
207
|
-
.TP
|
208
|
-
.B \-\-archive
|
209
|
-
Use rsync archive mode (rsync's \-a option).
|
210
|
-
|
211
|
-
.TP
|
212
|
-
.B \-z
|
213
|
-
.PD 0
|
214
|
-
.TP
|
215
|
-
.B \-\-compress
|
216
|
-
Use rsync compression.
|
217
|
-
|
218
|
-
.TP
|
219
|
-
.BI \-S " args"
|
220
|
-
.PD 0
|
221
|
-
.TP
|
222
|
-
.BI \-\-ssh-args " args"
|
223
|
-
Passes extra SSH command-line arguments (see the
|
224
|
-
.BR ssh (1)
|
225
|
-
man page for more information about SSH arguments).
|
226
|
-
The given value is appended to the ssh command (rsync's \-e option) without
|
227
|
-
any processing.
|
228
|
-
|
229
|
-
|
230
|
-
.\" .SH EXAMPLES
|
231
|
-
|
232
|
-
.\" .PP
|
233
|
-
.\" Connect to host1 and host2, and print "hello, world" from each:
|
234
|
-
.\" .RS
|
235
|
-
.\" pssh -i -H "host1 host2" echo "hello, world"
|
236
|
-
.\" .RE
|
237
|
-
|
238
|
-
|
239
|
-
.SH TIPS
|
240
|
-
|
241
|
-
.\" .PP
|
242
|
-
.\" If you have a set of hosts that you connect to frequently with specific
|
243
|
-
.\" options, it may be helpful to create an alias such as:
|
244
|
-
.\" .RS
|
245
|
-
.\" alias pssh_servers="pssh -h /path/to/server_list.txt -l root -A"
|
246
|
-
.\" .RE
|
247
|
-
|
248
|
-
.PP
|
249
|
-
The ssh_config file can include an arbitrary number of Host sections. Each
|
250
|
-
host entry specifies ssh options which apply only to the given host. Host
|
251
|
-
definitions can even behave like aliases if the HostName option is included.
|
252
|
-
This ssh feature, in combination with pssh host files, provides a tremendous
|
253
|
-
amount of flexibility.
|
254
|
-
|
255
|
-
|
256
|
-
.SH EXIT STATUS
|
257
|
-
|
258
|
-
.PP
|
259
|
-
The exit status codes from prsync are as follows:
|
260
|
-
|
261
|
-
.TP
|
262
|
-
.B 0
|
263
|
-
Success
|
264
|
-
|
265
|
-
.TP
|
266
|
-
.B 1
|
267
|
-
Miscellaneous error
|
268
|
-
|
269
|
-
.TP
|
270
|
-
.B 2
|
271
|
-
Syntax or usage error
|
272
|
-
|
273
|
-
.TP
|
274
|
-
.B 3
|
275
|
-
At least one process was killed by a signal or timed out.
|
276
|
-
|
277
|
-
.TP
|
278
|
-
.B 4
|
279
|
-
All processes completed, but at least one rsync process reported an error
|
280
|
-
(exit status other than 0).
|
281
|
-
|
282
|
-
|
283
|
-
.SH AUTHORS
|
284
|
-
.PP
|
285
|
-
Written by
|
286
|
-
Brent N. Chun <bnc@theether.org> and
|
287
|
-
Andrew McNabb <amcnabb@mcnabbs.org>.
|
288
|
-
|
289
|
-
http://code.google.com/p/parallel-ssh/
|
290
|
-
|
291
|
-
|
292
|
-
.SH SEE ALSO
|
293
|
-
.BR rsync (1),
|
294
|
-
.BR ssh (1),
|
295
|
-
.BR ssh_config(5),
|
296
|
-
.BR pssh (1),
|
297
|
-
.BR prsync (1),
|
298
|
-
.BR pslurp (1),
|
299
|
-
.BR pnuke (1),
|