DistantBiff -- monitor distant mailboxes
Dave Taylor
taylor at limbo.Intuitive.Com
Fri Dec 22 12:52:18 AEST 1989
This is a cute little shell script I hacked up to allow me to have some
minimal idea what's going on with some of the remote accounts that I have,
but don't necessarily want to log in to with any frequency to check.
The script expects to be run from a cron or crontab file.
Enjoy and happy end of 1989 to y'all!
-- Dave Taylor
Intuitive Systems
Mountain View, California
taylor at limbo.intuitive.com or {uunet!}{decwrl,apple}!limbo!taylor
--- Attachment:
#!/bin/sh
#
# DistantBiff - A script to aid users in keeping track of mail
# they might receive on remote computer accounts.
#
# Author: Dave Taylor, Intuitive Systems <taylor at intuitive.com>
#
# Use by adding an occasional invocation of this script to the
# cron program, perhaps nightly, or once a week...
# LOCALIZE the following
USERNAME=taylor
SEND_MAIL_TO=taylor at Intuitive.Com
# stuff you might need to change for BSD, local configuration, etc.
HOMEDIR=/users/$USERNAME
MAILBOX=/usr/mail/$USERNAME
mail=/usr/bin/mailx # should understand '-s' flag for subject
from="/usr/local/bin/from -n"
# and stuff you should probably leave alone...
host=`hostname`
oldfile=".last.from" # these
newfile=".new.from" # live in
newmsgs=".new.msgs" # users home
changes="none"
# first step: move us into the home directory
cd $HOMEDIR
# now let's get a summary of the current mailbox state
$from $MAILBOX > $newfile
# armed with this, let's now figure out what's changed...
if [ ! -f $oldfile ] ; then # first time we've run!
changes="all"
else
diff $newfile $oldfile > $newmsgs # New mail?
if [ "`head $newmsgs`" != "" ] ; then # MMmmmm...YES!
changes="new"
fi
fi
# now let's send a summary based on what changes there are.
case $changes in
# if it's new, we'll get just the stuff that shows up in new but
# not old (to avoid reporting deleted messages, which would be in
# old but not new) (cute, eh?), and strip off the '<' from diff
new) cat $newmsgs | grep '^<' | sed 's/^< //' | \
$mail -s "New messages on $host" $SEND_MAIL_TO
;;
# otherwise, just send the output of the 'from' command!
all) $mail -s "New mail on $host" $SEND_MAIL_TO < $newfile
;;
# unless nothing has changed...
*) ;; # nothing to do since no changes!
esac
# some final cleanup...
/bin/mv $newfile $oldfile # update for next time
/bin/rm -f $newmsgs # and discard this
# and we're done!
exit 0
# -- end of script
More information about the Alt.sources
mailing list