Article Figure 1 Figure 2 Listing 1 Listing 2
Listing 3 Listing 4 Listing 5 Listing 6 dec2005.tar

Listing 3 This script creates an EZMLM mailing list for a given service on a given host. Users can then "subscribe" to this service, if they are interested in knowing it's status.

#!/bin/sh
#given list stuff on stdin, create list stuff

HOME='/usr/local/nagios/lists'
SERVER_ADDR='your.nagios.fqdn'
TEMPLATE="${HOME}/LIST_TEMPLATE"

while read i
do
        #firgure out what the servername and service names are  
        SERVER=`echo $i | cut -d\  -f1`
        SERVICE=`echo $i | sed 's/\(^[^ ]\+\) \(.*\)/\2/' |tr \
                 '[:upper:]' '[:lower:]'| tr ' ' '_'`

    echo
        echo "creating ${SERVER}-${SERVICE}"

    #create the list
        ezmlm-make ${HOME}/${SERVER}-${SERVICE} \
        /var/qmail/alias/.qmail-${SERVER}-${SERVICE}\
        ${SERVER}-${SERVICE} ${SERVER_ADDR}

    #link in the template files
    for j in `ls ${TEMPLATE}`
    do
       rm ${HOME}/${SERVER}-${SERVICE}/$j  
           ln $TEMPLATE/$j  ${HOME}/${SERVER}-${SERVICE}/$j
    done
    #add the replyto header
    echo "Reply-To: \
          <${SERVER_ADDR}>" >> ${HOME}/${SERVER}-${SERVICE}/headeradd

    #fix the perms
    chown -R alias.qmail ${HOME}/${SERVER}-${SERVICE}/
    chmod -R g+rwX ${HOME}/${SERVER}-${SERVICE}/
done

#fix the alias perms
chown -R alias.qmail /var/qmail/alias