What distributed shell utilities do people feel are good, flexible, and easy to use? [closed]

I've been searching and collecting links for a lot of them, but many of these tools don't have enough use case or demonstration documentation to be able to evaluate their potential worth without installing and trying them out.

I am hoping that people here have experience with some of them and can offer feedback regarding how easy they are to install, and use.

My personal use case is a couple of machine pools that are typically used in concert to work on distributed tasks. The machines are not an actual cluster (like beowulf), and my primary need is to aid in the configuration and administration of the machines. If the utility provided the ability to actually break up the work into parts and distribute those parts, that is interesting, but I need the primary use case first.

Here is the list of projects I've found that are free and open source:

  • pdsh
  • clusterssh
  • pssh
  • clusterit
  • fanout
  • omnitty
  • taktuk
  • dish
  • dsh
  • pydsh

I am eager to hear your thoughts!


I'm a big fan of clusterssh. It pops up a terminal window for each host you're contacting, and another smaller window. Text typed in the smaller window goes to all terminal windows. If you need to enter input for some hosts (eg answering 'y' to the "trust this key" question for new hosts), you can just type it in the terminal window.


Add Capistrano to your list. http://www.capify.org/

It's not strictly a distributed shell, but suits your needs.


pdsh is very useful for "cluster" work. The host name handling (host[1-N]) and variable fanout, and ability to set a timeout on how long you are willing to wait for a command to return are very useful on larger machines. In addition it supports several methods for remote access. (ssh, rsh etc.). It even can come in handy some times for running multiple simultaneous commands on the same node.

For an added bonus combine pdsh with dshbak for easy combining the output of similar hosts into one output chunk.