bug-inetutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-inetutils] multihost variant of rsh


From: David Mathog
Subject: [bug-inetutils] multihost variant of rsh
Date: Fri, 20 Dec 2002 15:59:15 -0800

Not exactly a bug but I didn't know where else to send this.

I have placed a hacked up version of the rsh from inetutils
1.4.07 in this directory:
  
  ftp://saf.bio.caltech.edu/pub/software/linux_or_unix_tools/

It can perform the following functions (which are really handy
when you have a lot of nodes to work on):

  rsh node1,node2,node3...,nodeN command #run command on all nodes
  rsh -f file_of_nodes.txt command #ditto, names from a file
  rsh -zf file_of_nodes.txt /etc/rc.d/init.d/xinetd restart

-z kills all IO.  It lets rsh start up jobs and not have to
wait around for them to finish.  This is the fastest way I know
of to start jobs on remote systems.  It is very handy in
cases like the one shown.

There are some limitations.  For instance, this is completely
undefined:

  cat file | rsh -f file_of_nodes.txt command 

since command on one node might read more or less data
than command on another node.  In most cases command will
consume all of stdin (since it won't exit until it hits EOF)
and that will leave nothing for the other nodes.

This also doesn't work presently:

  rsh address@hidden,address@hidden command

although it could be made to work with a little effort.


This version of rsh can also read from Unix message
queues take that data, instead of stdin, and send
that to a single node.  You can test that capability
easily enough with the command line program "msgqueue.c"
also present in that directory.

The need to read from message queues may
be a bit obscure but I'm going to use this
functionality to test methods of command fan out. 
That is, an internal node in a tree structured computing
grid might have one uplink and two down links.  Then
the fanout system would be started something like this:

  msgqueue -k 1 -c #message queue for uplink
  msgqueue -k 2 -c #message queue for downlink1
  msgqueue -k 3 -c #message queue for downlink2
  msgqueue -k 4 -c #message queue for fanoutd
  # start next 4 as daemons
  daemon rsh -k 1 uplinknode msgqueue -k 4 -send 
  daemon rsh -k 2 leafnode1  msgqueue -k 4 -send
  daemon rsh -k 3 leafnode2  msgqueue -k 4 -send
  daemon fanoutd

The fanout daemon on each node reads messages
from queue 4 and directs messages up via queue 1
or down via either 2 or 3. This could also be
accomplished with a single queue and 4 message types.

Regards,

David Mathog
address@hidden
Manager, Sequence Analysis Facility, Biology Division, Caltech



reply via email to

[Prev in Thread] Current Thread [Next in Thread]