dfs@doe.carleton.ca (David F. Skoll) (11/08/90)
For those who've been following the REMIND saga... The following C-Shell script can be run by cron in the wee hours of the morning to mail reminders to users who create a .reminders file in their home directory. The script should be run sometime after midnight so that the date is correct when users arrive in the morning. David Skoll. ------------- CUT HERE -------------- #!/bin/csh -f # Shell script to mail all users reminders. # Run it AFTER MIDNIGHT so that date is correct! # On our system, we have the following in our crontab: # 05 5 * * * /usr/share/lib/remind/remind-all > /dev/null 2>&1 # Also, you MUST use the -r option on REMIND, otherwise SEVERE # security hole could develop. I recommend making this script # readable and executable only by root to minimize security problems. # DO NOT make the script setuid! # The following line gets a list of users for systems using SUN's # NIS service: set USERS = `ypcat passwd | awk -F: '{print $1}'` # The following line gets a list of users by examining /etc/passwd: # set USERS = `awk -F: '{print $1}' /etc/passwd` # If neither of the above methods works, you must come up with some # way of getting a list of users on the system # Set the following variables as appropriate for your system set REMIND = /usr/local/bin/remind set MAIL = /usr/ucb/mail set CMP = /usr/bin/cmp set RM = "/usr/bin/rm -f" set EMPTY = /tmp/Empty.$$ set FULL = /tmp/Full.$$ # Create the dummy empty reminder file $REMIND -r /dev/null > $EMPTY # Scan each user's directory for a .reminders file foreach i ($USERS) if (-r ~$i/.reminders) then # echo "$i has a .reminders file." DEBUGGING PURPOSES ONLY $REMIND -r ~$i/.reminders > $FULL $CMP -s $EMPTY $FULL if ($status != 0) then # echo "Sending mail to $i" DEBUGGING PURPOSES ONLY $MAIL -s "Reminders" $i < $FULL endif $RM $FULL endif end $RM $EMPTY