=remind() macro
[posted 2000/03/01]
If your days are as busy as mine, or if you're a procrastinator like I am, you might get in the habit of ignoring certain recurring PIKT alerts, just deleting them when you see them. There's nothing wrong with that. My advice is to put under 'level warning' and below (notice, info) any stuff that you don't really have to attend to that day or that you just hate to do.
For quite a while now, we've been receiving recurring alerts from UserDirsChkWarning about possible orphaned accounts, so signified because no activity is detected in their home directories for at least one year. I won't go into too many details here, but suffice it to say that, in a many-user environment like ours, this whole account retirement business is a royal pain.
We have several hundred long-inactive accounts for which we've been receiving "orphaned" messages, day after day. I inquired about these accounts and learned that they represent a class of "possible no-shows, late-comers, on-leaves-of-absence, and otherwise legitimate inactives." We can't retire these accounts; we're stuck with them, at least until the summer, when the Student Affairs Office will review their situation.
I have amended our UserDirsChkWarning to cut down on this orphaned-account noise:
UserDirsChkWarning ... #if madrid begin // according to smetana, these accounts are possible no-shows, // latecomers, on-leaves-of-absence, or legitimate inactives; // let's review this situation every 7/1; see also the // orphan rule below and the =mbaorphans file =remind(2000, 7, 1, "REVIEW THE MBAORPHANS SITUATION.") if #now() < #datevalue(2000, 7, 1) set #bypass_mba_orphans = #true() else set #bypass_mba_orphans = #false() endif #endif ... rule // orphaned? #if madrid // see the =remind() in the begin section above if #system("=grep $user =mbaorphans") == 0 // 0 is found if #bypass_mba_orphans leave // else proceed to check orphan status endif endif #endif ...
"=mbaorphans" above refers to a new data set in objects.cfg:
#if madrid MBAOrphans // this list is used in UserDirsChk # include <objects/mba_orphans_objects.cfg> #endif
<objects/mba_orphans_objects.cfg> is just a simple list of account names.
With these adjustments in place, we should no longer receive, day after day, warnings that these >200 accounts are possible "orphans". Until 7/1/2000, that is.
No big deal here. What I'd really like to point out is the usefulness of the =remind macro. Refer again to this part of the UserDirsChkWarning script:
begin // according to smetana, these accounts are possible no-shows, // latecomers, on-leaves-of-absence, or legitimate inactives; // let's review this situation every 7/1; see also the // orphan rule below and the =mbaorphans file =remind(2000, 7, 1, "REVIEW THE MBAORPHANS SITUATION.")
Beginning on July 1, and every day thereafter until we reset the =remind() date (or yank the reminder), a "REVIEW THE MBAORPHANS SITUATION." will appear in our Warning alerts for the madrid machine.
To me, this is quite useful, registering a mail reminder directly within the script code. Quite often, I make a mental note to do something several months hence. Of course, I usually forget to do that something. Or I send a reminder e-mail to myself. Then I have to remember to review my older e-mails from time to time hunting for postponed things-to-do. Of course, I review old e-mails very irregularly, so rediscover those things-to-do weeks or months after when they really should have been done.
Maybe you solve this reminder problem using a Palm Pilot, a computerized calendar, or some other reminder program. That's not so appealing to me, in large part because the reminder is so distanced from the source of what it is I have to do.
Anyway, I intend to use this =remind macro aggressively, inserting it all over our alarms.cfg, especially places involving temporary exceptions. In fact, I am even thinking of having a special "alert" with just one script that does nothing but send out date-triggered reminders. (Note that, using Pikt's date and time functions and script code, you can play all sorts of games with how often reminders get sent, who they get sent to, etc.)
For more examples, see Developer's Notes.