Posted by: scotbofh | October 14, 2008

Produce a members report for all your Mailman lists

I recently had cause to produce a report on the membership of all our Mailman mailing lists, so rather than doing it manually I knocked together the following handy bash script…change mailman location and output file as desired :)

OUTPUTFILE="/tmp/mailman_report"
CURRMONTH=`date +%m-%Y`
LISTS=`/usr/local/mailman/bin/list_lists  | awk '{print $1}' | grep -v [!0-9]`
rm ${OUTPUTFILE}
echo "Mailman Report for ${CURRMONTH}" > ${OUTPUTFILE}
echo >> ${OUTPUTFILE}
for x in ${LISTS}
do
        echo "Members of List ${x}:" >> ${OUTPUTFILE}
        LIST_MEMBERS=`/usr/local/mailman/bin/list_members ${x}`
        for mems in ${LIST_MEMBERS}
        do
                echo ${mems} >> ${OUTPUTFILE}
        done
echo >> ${OUTPUTFILE}
done
/bin/mail -s "Mailman_Report_for_${CURRMONTH}" foo@foo.com -c blah@blah.com < ${OUTPUTFILE}

Leave a response

Your response:

Categories