
	SATOOLS, System Administrator Tools.
	Copyright (C) 1995,1996  Lars Berntzon, Cecilia Data AB

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 1, or (at your option)
	any later version. In addition to this GNU General Public License
	some extra requirements have been added, see the file COPYING.EXTRA.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.
	
	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
	
-------------------------------------------------------------------------------

1.	INTRODUCTION

	Satools is a set of tools and databases to help system administrators
	to manage a large set of almost but not quite equally configured UNIX
	hosts.

1.1.	REQUIREMENTS

	To compile it requires GNU g++, GNU library libg++, tcl and a dbm type
	of database either dbm, ndbm or gdbm. If extended tcl (tclX) is
	available, the configuration script will also include support for that.

1.2 	ENVIRONMENTS

	Satools has only been tested on SunOS-4.1x, Solaris 2.5 and, of course,
	Linux.


2.	THE PROBLEM

	If you know exactly which machines you administrate, how much memory
	each host has, which OS-version they are running, who is using the
	hosts. Do you also know what cron jobs are running on every host, how
	every startup file like rc.local or files in the /etc/rc*.d shall
	look like, what the /etc/motd looks like on all hosts or what
	kernels they are using. If you know all of this i can only
	congratulate you for being a happy/lucky/competent system
	administrator and you can remove all these files you just ftp:ed or
	unshared.  

	If not, satools might be something for you. It is a collection of
	tools containing two major parts, or databases actually: machines
	and sadist.

	It also includes various other things that a UNIX-system administrator
	might find useful, but they are merely an extra bonus.

2.1.	MACHINES

	The first database, "machines", stores information about hosts.
	Information like the size of the primary memory, which OS-version is
	installed, if the hosts are NFS-servers or not, NIS-servers, disk
	less clients, connected subnets e.t.c. There are a number of standard columns
	which comes preconfigured in satools, but you can add any number of
	database columns. The data in this database is normally generated
	automatically, although it is possible to enter data manually. This
	manual data can either entered into the standard columns or into the
	user defined columns.
	To extract data from this database the command "machines" is used,
	same name as the database itself. There are a number of options to
	machines to specify different search criteria and presentation
	formats.
	Read more in the manual page for 'machines'.

2.2.	SADIST

	The second database, "sadist", stores information about what should
	be on the hosts, e.g. what system files shall look like, which extra
	files shall exist, what the permission shall be on those files etc. 
	The information need not to be just what system files shall look
	like, it can also be some commands that shall be executed on all or
	certain hosts, for instance commands to configure printers in SYSV,
	or commands to maintain cron-tab jobs. What ever it is - updating
	files or running commands - it is called a distribution.
	To actually update a host the command "sadist" is used. It
	distributes parts or everything to the host. For example to update
	the /etc/motd file on the host Madonna the system administrator might
	do:
	    sadist motd Madonna
	and out the new motd file goes. Another case could be when a new
	patch needs to be installed on all SPARC5 stations with OS-version
	4.1.3, then the administrator might do "sadist patch-xxx" and voila,
	all SPARC5:s gets updated. In this case the distribution "knows"
	which hosts to update. All of sadists knowledge about hosts is
	actually taken from the machines database.
	To read more about how to use the 'sadist' command read the manual
	page, to read how to create distributions read the section 5 manual
	page for sadistfiles.

3.	OTHER TOOLS

	There are a couple of other tools included in satools. They are no
	documentation for those yet, but here is a short description of them:

		xsadb		- Graphical tool to maintain the satools
				  databases (like the database).

		rexe		- Execute shell commands on many machines.
				  Accepts same options as machines.
				  Reads commands to execute from stdin.

		samenu		- Simple menu system.
				  Menus must be created below $SAHOME/samenu .

		xsamenu 	- Graphical version of samenu.

		satimeout	- Run a command with timeout.

		pargs		- Run commands on several arguments, but run each
				  argument in a sub process. This can decrease the
				  overall time for executing a specific task.

		rcsbackup	- Handles repeated backups of important system
				  file into a RCS version controlled archive. 
				  Since the backup (or RCS) only saved differential
				  changes to the files, the backup area is usually 
				  not very big. I normally run this command in 
				  intervals ranging from a couple of times per day
				  up to every 10 minutes.

		diffdir		- Recursively reports on which files differs between two
				  directories.


4.	QUESTIONS AND BUG REPORTS

	If you have any questions about satools or when you have found bugs
	please mail me at:

		lasse@cecilia-data.se

	Also, don't forget to read the copyright files COPYING and also the 
	file COPYING.EXTRA.
