psh — run a command on or copy a file to multiple nodes.
psh  [ OPTIONS ] [ command  [ args ] ]
psh  [ OPTIONS ] [  -s ] [ files | directories ]
psh runs a command on all or a group of nodes. The output of each command is parsed and common parts are only shown once.
      With the option -s or -sync,
      one or more file(s) and/or entire directories (including
      subdirectories) are synchronized (copied) to the selected nodes.
    
-c,
	  -configfile
          file
        Define a group and a configuration file to use. The file is looked up in the current directory.
-g,
	  -group
          group
        Use nodes and other parameters in group
            group, defined in the
            configuration file
            ~/.psh.d/group.
            This  is short for of -c
            ~/.psh.d/group.
	  
-n,
	  -node
          nodelist
        Add nodes nodelist to the list of
            nodes.
	  
-x,
	  -xnode
          nodelist
        Exclude nodes nodelist from the list of
            nodes.
	  
-rcmd
          command
        Use command command to start up a
            remote command. Command could be
            pssh (default),
            rsh or ssh.
	  
-diff
          command
        Use command command to parse and
            compare the command output. Default is diff
            -q.
	  
-autocd
          path
        Change to directory path on each
            node before running the command or copying the file.
            Default is ${PWD/${HOME}/~}. Use an
            empty path ("") to disable changing
            to a directory first.
	  
-v
	Be verbose.
-h
        Show a help message.
      Without option -g or option
      -c, a default file named like the current
      hostname, the current hostname without trailing numerical
      characters ([0-9]*), or default
      (in this order) within ~/.psh.d/ is
      used. If none of this files is found, an empty template
      file ~/.psh.d/default is created.
      This file may be modified to fit your needs!
    
      Nodelist is a comma separated list of
      node names. The list can be abbreviated
      to node-[from-to], e.g.
      node-[003-115,001] will be expanded
      to node-001,
      node-003,
      node-004, ...,
      node-115.
    
      This example shows a configuration file
      ~/.psh.d/rack1 defining nodes
      node-01 up to node-16
      within rack number 1:
    
## psh defaults for rack 1 ## uncomment all options you need... ## default nodelist: # node nodename[01-16] node node-[01-16] ## default remote command: # rcmd ssh -x ## don't start more than 1 remote shell at the same time? # max 1 ## be always verbose ? # verbose
To see the uptime of all nodes in rack 1, execute
# psh -g rack1 uptime
      In order to compare the current date on all nodes, run 
      date on all nodes:
    
  # psh date
  === node-[01-04,06-16]
  Mon Jul 18 12:45:17 CEST 2005
  === node-05
  Mon Jul 18 12:45:18 CEST 2005
    
      To calculate and compare the md5sum of all Linux kernels on all
      but node node-03, execute:
    
# psh -x node-03 md5sum /boot/vmlinux === node-[01,02,04,06-16] c9c0728c41ca03a9ee9982869e28216e /boot/vmlinuz === node-05 ff62b57a078f1f8244796c5609a053e8 /boot/vmlinuz
      To copy the file /etc/hosts to all 
      nodes, execute:
    
# psh -sync /etc/hosts Prepare files for distribution: /tmp/pshout.1235 /etc/hosts Continue (y/n)?[n]
      (Presuming a suitable configuration  file within
      ~/.psh.d is found.)
    
        The local file /etc/hosts is also
        replaced by a  copy of this file.
      
      To copy the file /etc/hosts to all but the
      local node, execute:
    
# psh -s -x `hostname` /etc/hosts Prepare files for distribution: /tmp/pshout.1236 /etc/hosts Continue (y/n)?[n]