Man Linux: Main Page and Category List

NAME

       dsh - Distributed shell, or dancer’s shell

SYNOPSIS

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

DESCRIPTION

       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.

OPTIONS

       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.

EXIT STATUS

       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 processes.

EXAMPLES

       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.

FILES

       /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 specified.

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

BUGS

       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.

AUTHOR

       Junichi Uekawa (dancer@debian.org)

       Upstream            page            is           available           at
       http://www.netfort.gr.jp/~dancer/software/dsh.html

SEE ALSO

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