admchange
to coordinate changes. The idea is to provide a mechanism to keep various admins (in different locations, and with different types of reachability) from bumping into each other.
admchange
- control changes by system administrators
startchange
- begin a large change, with locking
endchange
- end a large change, releasing lock
logchange
- log a note about a smaller change
*change [-b] [-e] [-m message]
Helps keep track who is making changes to the system at any given time, and preven collisions of same. Maintains a changelog to keep a record of these changes over time.
Operation being performed is determined by the name the script is called as. Intent is for links to be made to master admchange
script. Do not call as admchange
directly.
In all three modes, the user provides a message to describe the change. Defaults to prompting using readline
for input, RCS-style. Will use your $EDITOR
or /bin/vi
instead if you call this script with -e
option. Can also specify a message as an argument using -m
option (useful for short one-liners, e.g., logchange -b -m 'restarted apache'
).
The message is recorded in the change log and broadcast using wall
. The -b
option suppresses the wall broadcast.
Call as startchange
to begin a large change. A "large change" is one which will take some time to finish, during which time other admins should not make changes. This establishes a lock to prevent another startchange
from being started before endchange
is called. The message entered is also added to /etc/motd
to alert any new logins.
Call as endchange
to signal the end of a change begun with startchange
, and release the lock. Restores /etc/motd
as well.
Call as logchange
to log a minor change which doesn't need to be guarded by locking. This does not touch /etc/motd
at all. Can be used while startchange
is in effect (useful for checkpoint logging).
Use the startchange
and endchange
scripts in /usr/local/adm
. I was going to include Mike Ledoux's instructional message in here, but I can't find it in the archives! -- BruceDawson - 23 Feb 2006
That's because I never wrote one. I described a method that I thought would work to control access, then quickly wrote the scripts to do it and sent them up to the server. Usage is simple, really, just run startchange
as yourself before making any changes, then run endchange
when you are done. The scripts will prompt you for a log message (reading from stdin, redirection works fine; or use the -e
option to fire up a real editor) then do all the magic for you. -- MikeLedoux - 27 Feb 2006
The scripts have been combined into one multi-call script, and some functionlity added. The script and links now live /usr/local/adm/bin/
with data files in /usr/local/adm/changes/
. There is a logchange
script one can run to record notes on a change that didn't need the start/end guarding. See the source for details. -- BenScott - 03 Apr 20
The script keeps getting tweaked to add (creeping) features. I attached the latest version of the admchange
script to this page, in case others might find it useful. The source is fairly well-commented, with usage instructions at the top. Share and enjoy! -- BenScott - 21 May 2006