A long ways back, I posted asking about how to rotate paging when there was a complex paging schedule, with multiple people working overlapping shifts. In addition to our hourly on-duty schedule we have weekly rotations for various teams on-call. We wanted to be able to tell xymon to page the DBA on-call or the tech ons duty this hour, without having to write what were becoming increasingly cumbersome rules.
Well, we couldn't find anything that would do what we wanted, so we ended up writing something in-house. (I say "we" but I mean one of our developers, who gave up some "innovation Friday" time and some personal evening/weekend time as well!)
It's still in the quick-and-dirty stage, not well-documented or polished enough to release as an open source tool yet, but we'd like to get it there.
Meanwhile I wanted to share it. You're welcome to look at it and to use it in whole or in part, but please do not formally redistribute it until we can get it into better shape. We just started production acceptance testing of xymon and this script, this week.
A link from my personal account:
http://www.well.com/~betsys/get-tech-on-call.pl http://www.well.com/~betsys/dummy_sched.xml
I would very much welcome any feedback or improvements.
The program takes as input an XML file containing definitions for people (name, email, and pager) , one or more lines for each tech in the weekly schedule, and a line for each of the weekly rotations. It outputs a list of the pager addresses for each person on duty, suitable for using as a mail alias file, or a list of names, OR a weekly schedule in csv format for ease of reading in a spreadsheet to check your work.