pec2 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/exe/man/man1/pssh.1 DELETED
@@ -1,368 +0,0 @@
1
- .\" Man page for pssh. See "man 7 man" and "man man-pages" for formatting info.
2
- .TH pssh 1 "January 24, 2012"
3
-
4
- .SH NAME
5
- pssh \(em parallel ssh program
6
-
7
-
8
- .SH SYNOPSIS
9
- .B pssh
10
- .RB [ \-vAiIP ]
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 command ...
32
-
33
- .B pssh \-I
34
- .RB [ \-vAiIP ]
35
- .RB [ \-h
36
- .IR hosts_file ]
37
- .RB [ \-H
38
- .RI [ user @] host [: port ]]
39
- .RB [ \-l
40
- .IR user ]
41
- .RB [ \-p
42
- .IR par ]
43
- .RB [ \-o
44
- .IR outdir ]
45
- .RB [ \-e
46
- .IR errdir ]
47
- .RB [ \-t
48
- .IR timeout ]
49
- .RB [ \-O
50
- .IR options ]
51
- .RB [ \-x
52
- .IR args ]
53
- .RB [ \-X
54
- .IR arg ]
55
- .RI [ command
56
- .IR ... ]
57
-
58
-
59
- .SH DESCRIPTION
60
- .PP
61
- .B pssh
62
- is a program for executing ssh in parallel on a number of hosts. It provides
63
- features such as sending input to all of the processes, passing a password
64
- to ssh, saving output to files, and timing out.
65
-
66
- The PSSH_NODENUM and PSSH_HOST environment variables are sent to the remote
67
- host. The PSSH_NODENUM variable is assigned a unique number for each ssh
68
- connection, starting with 0 and counting up. The PSSH_HOST variable is
69
- assigned the name of the host as specified in the hosts list. Note that sshd
70
- drops environment variables by default, so sshd_config on the remote host must
71
- include the line:
72
- .RS
73
- AcceptEnv PSSH_NODENUM PSSH_HOST
74
- .RE
75
-
76
- .SH OPTIONS
77
-
78
- .TP
79
- .BI \-h " host_file"
80
- .PD 0
81
- .TP
82
- .BI \-\-hosts " host_file"
83
- Read hosts from the given
84
- .IR host_file .
85
- Lines in the host file are of the form
86
- .RI [ user @] host [: port ]
87
- and can include blank lines and comments (lines beginning with "#").
88
- If multiple host files are given (the
89
- .B \-h
90
- option is used more than once), then pssh behaves as though these files
91
- were concatenated together.
92
- If a host is specified multiple times, then pssh will connect the
93
- given number of times.
94
-
95
- .TP
96
- .B \-H
97
- .RI [ user @] host [: port ]
98
- .PD 0
99
- .TP
100
- .B \-\-host
101
- .RI [ user @] host [: port ]
102
- .PD 0
103
- .TP
104
- .B \-H
105
- .RI \(dq[ user @] host [: port ]
106
- [
107
- .RI [ user @] host [: port
108
- ] ... ]\(dq
109
- .PD 0
110
- .TP
111
- .B \-\-host
112
- .RI \(dq[ user @] host [: port ]
113
- [
114
- .RI [ user @] host [: port
115
- ] ... ]\(dq
116
- .PD 0
117
- .IP
118
- Add the given host strings to the list of hosts. This option may be given
119
- multiple times, and may be used in conjunction with the
120
- .B \-h
121
- option.
122
-
123
- .TP
124
- .BI \-l " user"
125
- .PD 0
126
- .TP
127
- .BI \-\-user " user"
128
- Use the given username as the default for any host entries that don't
129
- specifically specify a user.
130
-
131
- .TP
132
- .BI \-p " parallelism"
133
- .PD 0
134
- .TP
135
- .BI \-\-par " parallelism"
136
- Use the given number as the maximum number of concurrent connections.
137
-
138
- .TP
139
- .BI \-t " timeout"
140
- .PD 0
141
- .TP
142
- .BI \-\-timeout " timeout"
143
- Make connections time out after the given number of seconds. With a value
144
- of 0, pssh will not timeout any connections.
145
-
146
- .TP
147
- .BI \-o " outdir"
148
- .PD 0
149
- .TP
150
- .BI \-\-outdir " outdir"
151
- Save standard output to files in the given directory. Filenames are of the
152
- form
153
- .RI [ user @] host [: port ][. num ]
154
- where the user and port are only included for hosts that explicitly
155
- specify them. The number is a counter that is incremented each time for hosts
156
- that are specified more than once.
157
-
158
- .TP
159
- .BI \-e " errdir"
160
- .PD 0
161
- .TP
162
- .BI \-\-errdir " errdir"
163
- Save standard error to files in the given directory. Filenames are of the
164
- same form as with the
165
- .B \-o
166
- option.
167
-
168
- .TP
169
- .BI \-x " args"
170
- .PD 0
171
- .TP
172
- .BI \-\-extra-args " args"
173
- Passes extra SSH command-line arguments (see the
174
- .BR ssh (1)
175
- man page for more information about SSH arguments).
176
- This option may be specified multiple times.
177
- The arguments are processed to split on whitespace, protect text within
178
- quotes, and escape with backslashes.
179
- To pass arguments without such processing, use the
180
- .B \-X
181
- option instead.
182
-
183
- .TP
184
- .BI \-X " arg"
185
- .PD 0
186
- .TP
187
- .BI \-\-extra-arg " arg"
188
- Passes a single SSH command-line argument (see the
189
- .BR ssh (1)
190
- man page for more information about SSH arguments). Unlike the
191
- .B \-x
192
- option, no processing is performed on the argument, including word splitting.
193
- To pass multiple command-line arguments, use the option once for each
194
- argument.
195
-
196
- .TP
197
- .BI \-O " options"
198
- .PD 0
199
- .TP
200
- .BI \-\-options " options"
201
- SSH options in the format used in the SSH configuration file (see the
202
- .BR ssh_config (5)
203
- man page for more information). This option may be specified multiple
204
- times.
205
-
206
- .TP
207
- .B \-A
208
- .PD 0
209
- .TP
210
- .B \-\-askpass
211
- Prompt for a password and pass it to ssh. The password may be used for
212
- either to unlock a key or for password authentication.
213
- The password is transferred in a fairly secure manner (e.g., it will not show
214
- up in argument lists). However, be aware that a root user on your system
215
- could potentially intercept the password.
216
-
217
- .TP
218
- .B \-i
219
- .PD 0
220
- .TP
221
- .B \-\-inline
222
- Display standard output and standard error as each host completes.
223
-
224
- .TP
225
- .B \-\-inline\-stdout
226
- Display standard output (but not standard error) as each host completes.
227
-
228
- .TP
229
- .B \-v
230
- .PD 0
231
- .TP
232
- .B \-\-verbose
233
- Include error messages from ssh with the
234
- .B \-i
235
- and
236
- .B \e
237
- options.
238
-
239
- .TP
240
- .B \-I
241
- .PD 0
242
- .TP
243
- .B \-\-send-input
244
- Read input and send to each ssh process. Since ssh allows a command script to
245
- be sent on standard input, the
246
- .B \-I
247
- option may be used in lieu of the command argument.
248
-
249
- .TP
250
- .B \-P
251
- .PD 0
252
- .TP
253
- .B \-\-print
254
- Display output as it arrives. This option is of limited usefulness because
255
- output from different hosts are interleaved.
256
-
257
-
258
- .SH EXAMPLES
259
-
260
- .PP
261
- Connect to host1 and host2, and print "hello, world" from each:
262
- .RS
263
- pssh -i -H "host1 host2" echo "hello, world"
264
- .RE
265
-
266
- .PP
267
- Print "hello, world" from each host specified in the file hosts.txt:
268
- .RS
269
- pssh -i -h hosts.txt echo "hello, world"
270
- .RE
271
-
272
- .PP
273
- Run a command as root with a prompt for the root password:
274
- .RS
275
- pssh -i -h hosts.txt -A -l root echo hi
276
- .RE
277
-
278
- .PP
279
- Run a long command without timing out:
280
- .RS
281
- pssh -i -h hosts.txt -t 0 sleep 10000
282
- .RE
283
-
284
- .PP
285
- If the file hosts.txt has a large number of entries, say 100, then the
286
- parallelism option may also be set to 100 to ensure that the commands are run
287
- concurrently:
288
- .RS
289
- pssh -i -h hosts.txt -p 100 -t 0 sleep 10000
290
- .RE
291
-
292
- .PP
293
- Run a command without checking or saving host keys:
294
- .RS
295
- pssh -i -H host1 -H host2 -x "-O StrictHostKeyChecking=no -O UserKnownHostsFile=/dev/null -O GlobalKnownHostsFile=/dev/null" echo hi
296
- .RE
297
-
298
- .PP
299
- Print the node number for each connection (this will print 0, 1, and 2):
300
- .RS
301
- pssh -i -H host1 -H host1 -H host2 'echo $PSSH_NODENUM'
302
- .RE
303
-
304
- .SH TIPS
305
-
306
- .PP
307
- If you have a set of hosts that you connect to frequently with specific
308
- options, it may be helpful to create an alias such as:
309
- .RS
310
- alias pssh_servers="pssh -h /path/to/server_list.txt -l root -A"
311
- .RE
312
-
313
- .PP
314
- The ssh_config file can include an arbitrary number of Host sections. Each
315
- host entry specifies ssh options which apply only to the given host. Host
316
- definitions can even behave like aliases if the HostName option is included.
317
- This ssh feature, in combination with pssh host files, provides a tremendous
318
- amount of flexibility.
319
-
320
-
321
- .SH EXIT STATUS
322
-
323
- .PP
324
- The exit status codes from pssh are as follows:
325
-
326
- .TP
327
- .B 0
328
- Success
329
-
330
- .TP
331
- .B 1
332
- Miscellaneous error
333
-
334
- .TP
335
- .B 2
336
- Syntax or usage error
337
-
338
- .TP
339
- .B 3
340
- At least one process was killed by a signal or timed out.
341
-
342
- .TP
343
- .B 4
344
- All processes completed, but at least one ssh process reported an error
345
- (exit status 255).
346
-
347
- .TP
348
- .B 5
349
- There were no ssh errors, but at least one remote command had a non-zero exit
350
- status.
351
-
352
-
353
- .SH AUTHORS
354
- .PP
355
- Written by
356
- Brent N. Chun <bnc@theether.org> and
357
- Andrew McNabb <amcnabb@mcnabbs.org>.
358
-
359
- http://code.google.com/p/parallel-ssh/
360
-
361
-
362
- .SH SEE ALSO
363
- .BR ssh (1),
364
- .BR ssh_config(5),
365
- .BR pscp (1),
366
- .BR prsync (1),
367
- .BR pslurp (1),
368
- .BR pnuke (1),
File without changes
@@ -1,102 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- Mode: python -*-
3
-
4
- # Copyright (c) 2009-2012, Andrew McNabb
5
-
6
- """Implementation of SSH_ASKPASS to get a password to ssh from pssh.
7
-
8
- The password is read from the socket specified by the environment variable
9
- PSSH_ASKPASS_SOCKET. The other end of this socket is pssh.
10
-
11
- The ssh man page discusses SSH_ASKPASS as follows:
12
- If ssh needs a passphrase, it will read the passphrase from the current
13
- terminal if it was run from a terminal. If ssh does not have a terminal
14
- associated with it but DISPLAY and SSH_ASKPASS are set, it will execute
15
- the program specified by SSH_ASKPASS and open an X11 window to read the
16
- passphrase. This is particularly useful when calling ssh from a .xsession
17
- or related script. (Note that on some machines it may be necessary to
18
- redirect the input from /dev/null to make this work.)
19
- """
20
-
21
- import os
22
- import socket
23
- import sys
24
- import textwrap
25
-
26
- bin_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
27
- askpass_bin_path = os.path.join(bin_dir, 'pssh-askpass')
28
- ASKPASS_PATHS = (askpass_bin_path,
29
- '/usr/libexec/pssh/pssh-askpass',
30
- '/usr/local/libexec/pssh/pssh-askpass',
31
- '/usr/lib/pssh/pssh-askpass',
32
- '/usr/local/lib/pssh/pssh-askpass')
33
-
34
- _executable_path = None
35
-
36
- def executable_path():
37
- """Determines the value to use for SSH_ASKPASS.
38
-
39
- The value is cached since this may be called many times.
40
- """
41
- global _executable_path
42
- if _executable_path is None:
43
- for path in ASKPASS_PATHS:
44
- if os.access(path, os.X_OK):
45
- _executable_path = path
46
- break
47
- else:
48
- _executable_path = ''
49
- sys.stderr.write(textwrap.fill("Warning: could not find an"
50
- " executable path for askpass because PSSH was not"
51
- " installed correctly. Password prompts will not work."))
52
- sys.stderr.write('\n')
53
- return _executable_path
54
-
55
- def askpass_main():
56
- """Connects to pssh over the socket specified at PSSH_ASKPASS_SOCKET."""
57
-
58
- verbose = os.getenv('PSSH_ASKPASS_VERBOSE')
59
-
60
- # It's not documented anywhere, as far as I can tell, but ssh may prompt
61
- # for a password or ask a yes/no question. The command-line argument
62
- # specifies what is needed.
63
- if len(sys.argv) > 1:
64
- prompt = sys.argv[1]
65
- if verbose:
66
- sys.stderr.write('pssh-askpass received prompt: "%s"\n' % prompt)
67
- if not prompt.strip().lower().endswith('password:'):
68
- sys.stderr.write(prompt)
69
- sys.stderr.write('\n')
70
- sys.exit(1)
71
- else:
72
- sys.stderr.write('Error: pssh-askpass called without a prompt.\n')
73
- sys.exit(1)
74
-
75
- address = os.getenv('PSSH_ASKPASS_SOCKET')
76
- if not address:
77
- sys.stderr.write(textwrap.fill("pssh error: SSH requested a password."
78
- " Please create SSH keys or use the -A option to provide a"
79
- " password."))
80
- sys.stderr.write('\n')
81
- sys.exit(1)
82
-
83
- sock = socket.socket(socket.AF_UNIX)
84
- try:
85
- sock.connect(address)
86
- except socket.error:
87
- _, e, _ = sys.exc_info()
88
- message = e.args[1]
89
- sys.stderr.write("Couldn't bind to %s: %s.\n" % (address, message))
90
- sys.exit(2)
91
-
92
- try:
93
- password = sock.makefile().read()
94
- except socket.error:
95
- sys.stderr.write("Socket error.\n")
96
- sys.exit(3)
97
-
98
- print(password)
99
-
100
-
101
- if __name__ == '__main__':
102
- askpass_main()