SCATTERS - Simple Cool Admin Tool To Everwhere Run-Something
A simple sys-admin framework for distributed processing.
This is what I'm using to run the twinprimes
client on public workstations at RPI, when those workstations would otherwise
be idle. This work shows up as all the various "drosih" catagories
on the statistics
page of the twinprimes project.
One of the primary goals of this tool is to be "simple". Thus,
right now it's nothing more than a few bash scripts, two perl scripts, and
a few minor changes to ssh (secure-shell). However, using this simple framework,
I'm able to launch an arbitrary program on a given list of workstations,
and in such a way that when someone logs onto the workstation the program
is automatically terminated.
Scatters was recently mentioned in a paper on the twinprimes project
as presented to the IEEE. To people visiting this page after reading that
paper, I do expect to update and improve this web page as time permits (although
August 1998 will probably be pretty busy for me).
In it's current form, scatters is made up of:
- scatters_loop - a sh-script which just
calls scatters_pass, and then waits around a settable amount of time once
a single pass is done. It calls scatters_pass with a list of hosts based
on what hosts are listed as idle by a call to check_hosts.
- scatters_pass - a sh-script which starts
up an arbitrary process on a given list of machines. It uses ssh to start
sessions on the remote machines.
- check_hosts - a perl-script which knows
which hostnames are in which rooms (such as "vccsouth"), and
uses finger, rusers, or other means to figure out which hosts in a given
list of hosts are currently idle.
- test_exec - a perl script which can be
used on each remote host to start up some program (such as the twinprimes
client). It makes sure no one is on, and then starts the program up as
a low-priority process. It continues by watching for someone to logon,
and as soon as someone logs in then it kills the program and logs out.
Thus, by the time some user is fully logged in, there should be no left-over
process on the workstation.
Note that scatters does not have to use test_exec to start up the
program on the remote side, that's just what I happen to do for starting
a program such as twinprimes.
- An update to the scpconnect.c file in
ssh (secure-shell). While this update seemed like a fine idea at the time
I first wrote it, I later realized it would be a major security exposure
on some operating systems, so I will have to rewrite it. It is only a problem
on the machine running scatters_loop, and in my case I'm the only one who
can log onto that machine, so I continue using it because it is not a security
risk in my situation.
Obviously this is a very minimal description of what's going on. I hope
to improve the description (and probably rewrite most of these scripts)
as time goes on...
Comments and suggestions on this web page can be sent
to gad@gilead.netel.rpi.edu
(home)
This page was written on MacOS using PageMill from Adobe.
Web page last updated: Jul 31/1998