We use a system of scripts called 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

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatext admchange r1 manage 8.3 K 2006-05-20 - 21:18 BenScott administrator change control script
Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r6 - 2023-12-13 - BenScott

All content is Copyright © 1999-2024 by, and the property of, the contributing authors.
Questions, comments, or concerns? Contact GNHLUG.
All use of this site subject to our Legal Notice (includes Terms of Service).