Provided by: dsh_0.25.10-1.3_amd64 bug


       dsh - Distributed shell, or dancer's shell


       dsh [-m machinename | -a | -g groupname] [-r remoteshellname] [-c | -w | -i | -F forklimit
       ] -- commandline


       dsh executes command remotely on several different machines at the same time.  An  utility
       to effectively do a for a in $(seq 1 10); do rsh $a command; done in bourne shell.


       The options available are as follows.

       --verbose | -v
              Give verbose output of the execution process.

       --quiet | -q
              Makes output quieter.

       --machine | -m [machinename[,machinename]*]
              Adds  machinename  to the list of machines that the command is exeuted.  The syntax
              of machinename allows username@machinename where remote shell is invoked  with  the
              option to make it of username.

              From   version   0.21.4,   it   is   possible   to   specify   in   the  format  of
              username@machinename,username@machinename,username@machinename  so  that   multiple
              hosts can be specified with comma-delimited values.

       --all | -a
              Add  all  machines found in /etc/dsh/machines.list to the list of machines that the
              specified command is executed.

       --group groupname | -g groupname
              Add all machines found in /etc/dsh/group/groupname to the list of machines that the
              specified command is executed.

              If  groupname  is  on the form @netgroup then the machines in the given netgroup is
              used to specify the list of machines to execute on.

       --file machinefile | -f machinefile
              Add all machines found in the specified file to  the  list  of  machines  that  the
              specified command is executed.

              The  file  should  list one machine specification per line (with the same syntax as
              the machinename argument).  Lines starting with "#" are ignored.

              From version 0.21.4, Specifying the same machine several times  using  any  of  the
              machine specification options will result in multiple invocations merged into one.

       --remoteshell shellname | -r shellname
              Execute  remote  shell shellname as the remote shell. Usually any of "rsh", "remsh"
              or "ssh" are available

       --remoteshellopt rshoption | -o rshoption
              Add one option rshoption to the list of options passed on to the remote shell.

       --help | -h
              Output help message and exits.

       --wait-shell | -w
              Executes on each machine and waits for the execution finishing before moving on  to
              the next machine.

       --concurrent-shell | -c
              Executes shell concurrently.

       --show-machine-names | -M
              Prepends  machine  names  on  the standard output. Useful to be used in conjunction
              with the --concurrent-shell option so that the output is slightly more parsable.

       --hide-machine-names | -H
              Do not prepend machine names on the standard output.

       --duplicate-input | -i
              Duplicates the input to  dsh  process  to  individual  process  that  are  remotely
              invoked. Needs to have --concurrent-shell set.

              Due  to limitations in current implementation, it is only useful for running shell.
              Terminate the shell session with ctrl-D.

       --bufsize | -b [buffer-size in bytes]
              Sets the buffer size used in replicating input for --duplicate-input option.

       --version | -V
              Outputs version information and exits.

       --num-topology | -N
              Changes the current topology from 1. 1 is the  default  behavior  of  spawning  the
              shell  from  one  node to every node. Changing the number to a value greater than 2
              would result in dsh being spawned on other machines as well.

       --forklimit | -F fork limit
              Similar to -c with a limit on the number of  simultaneous  connections.   dsh  will
              wait  before  creating  new  connection  if  the limit is reached.  Useful when the
              number of nodes to be accessed is going somewhere above 200, and using -N option is
              not possible.


       The first non-zero exit code of child processes is returned, or zero if none returned non-
       zero exit code.

       1 if error is found in command-line specifications.  2 if signal is  received  from  child


       dsh -a w
              Shows list of users logged in on all workstations.

       dsh -r ssh -a -- w
              Shows  list of users logged in on all workstations, and use ssh command to connect.
              (It should be of note that when using ssh, ssh-agent is handy.)

       dsh -r ssh -m node1 -m node2 -c -- 'echo $HOSTNAME $(cat/proc/loadavg )'
              Shows the load average of machines node1 and node2.


       /etc/dsh/machines.list | $(HOME)/.dsh/machines.list
              List of machine names to be used for when -a command-line option is specified.

       /etc/dsh/group/groupname | $(HOME)/.dsh/group/groupname
              List of machine names to be used for  when  -g  groupname  command-line  option  is

       /etc/dsh/dsh.conf | $(HOME)/.dsh/dsh.conf
              Configuration file containing the day-to-day default.


       There should be a dcp for copying files to remote systems.

       Configuration files should really be able to do something more than it does now.


       Junichi Uekawa (

       Upstream page is available at


       rsh(1), ssh(1), remsh(1), dsh.conf(5)