parallel-ssh(1) parallel versions of the openssh tools


parallel-ssh [OPTIONS] -h hosts.txt prog [arg0...]


pssh provides a number of commands for executing against a group of computers, using SSH. It's most useful for operating on clusters of homogenously-configured hosts.


-h --hosts

hosts file (each line "host[:port] [user]")

-l --user

username (OPTIONAL)

-p --par

max number of parallel threads (OPTIONAL)

-o --outdir

output directory for stdout files (OPTIONAL)

-e --errdir

output directory for stderr files (OPTIONAL)

-t --timeout

timeout (secs) (-1 = no timeout) per host (OPTIONAL)

-O --options

SSH options (OPTIONAL)

-v --verbose

turn on warning and diagnostic messages (OPTIONAL)

-P --print

print output as we get it (OPTIONAL)

-i --inline

inline aggregated output for each server (OPTIONAL)


The following example runs hostname on three machines (IPs or hostnames) specified in the file ips.txt using login irb2 and saves the output in /tmp/foo.

# cat ips.txt
# parallel-ssh -h ips.txt -l irb2 -o /tmp/foo hostname
Success on
Success on
Success on
# ls /tmp/foo
# cat /tmp/foo/*

By default, pssh uses at most 32 ssh processes in parallel to ssh to the various nodes. (This is somewhat important if you're controlling hundreds or thousands of machines.) By default, it also uses a timeout of one minute to ssh to a node and obtain a result. For ssh commands that take longer than this (e.g., sleep 61), the -t option can be used. Note that pssh and pnuke have a default timeout of one minute. pscp and prsync have no default timeout, but one can be specified using the -t option.


All four programs take similar sets of options. All of these options can be set using the following environment variables:



Brent N. Chun <[email protected]>


Copyright: 2003, 2004, 2005, 2006, 2007 Brent N. Chun