Alright so I modified it right away. I forgot that originally they wanted to mail off the stats to each list admin...
This script lists out certain stats for each list and sends those stats to each list admin (and the mailman user). === begin script: mm_stats === #! /bin/bash # Run monthly stats on Mailman logs # Mail stats to each lists admin # - Number of attempted posts # - Number of Successful posts # - Total bytes sent # - top 10 users of each list # # Mailman's log file to be examined for stats POST=~mailman/logs/post # create temp file to collect stats TMPFILE=`mktemp /tmp/mm_stats.XXXXXX` || exit 1 LIST="`/home/mailman/bin/list_lists |awk '{print $1}' |sed -n '2,$p'`" for i in $LIST do echo "Stats from local Mailman list: $i" > $TMPFILE echo " " >> $TMPFILE echo -n " Starting: " >> $TMPFILE head -1 $POST |cut -f1-3 "-d " >> $TMPFILE echo -n " Ending: " >> $TMPFILE tail -1 $POST |cut -f1-3 "-d " >> $TMPFILE echo " ===" >> $TMPFILE echo -n "Total posts to the list: " >> $TMPFILE grep -i "post to $i " $POST |wc -l >> $TMPFILE echo -n "Total SUCCESSFUL posts to the list: " >> $TMPFILE grep -i "post to $i " $POST |grep success |wc -l >> $TMPFILE SIZ=`grep -i "post to $i" $POST |grep success |cut -f2 -d= |cut -f1 -d,` k=0; for j in $SIZ; do k=$(( j + k )); done echo " Total bytes" = $k >> $TMPFILE echo " " >> $TMPFILE echo "Top 10 posters to the list:" >> $TMPFILE grep -i "post to $i " $POST |cut -f 10 "-d " |sort |uniq -c \ |sort -bgr |head -10 >> $TMPFILE echo " " >> $TMPFILE # Mail the collected stats off to the list admin and cc the mailman user mail -s "Mailman Stats for List: $i" -c mailman $i-admin <$TMPFILE done # remove the temp file rm $TMPFILE === end script: mm_stats === The script dumps out the names of all the local Mailman lists and then runs through the POST log for each list. It dumps the stats out to a temp file and at the end, emails the contents of the temp file to the list admins (and cc's the mailman user). Unlike some of my other scribblings to the list, this script is tested and actually works! Use it as your own risk, etc... Again, any suggestions and modifications are welcome. Jon Carnes --- Original Message: Friday 12 April 2002 03:00 pm --- > Here is the final list stats script. If you use this script as is, then > you should run the script just before rotating your Mailman log files. > > If you want to run it right after rotating your log files, and your log > files rotate by adding a .1 to the end of post (so the rotated file would > be "post.1") then simply change the line: > POST= ... > and point it to your rotated log file. > > Any suggestions or modifications are welcome, > > Jon Carnes > > ==== > > #! /bin/bash > # Run monthly stats on Mailman logs > # - top 10 users of each list > # - Number of attempted posts (per list) > # - Number of Successful posts (per list) > # - Total bytes sent (per list) > # > POST=~mailman/logs/post > > echo "Stats from local Mailman lists:" > echo -n " Starting: " > head -1 $POST |cut -f1-3 "-d " > echo -n " Ending: " > tail -1 $POST |cut -f1-3 "-d " > LIST="`/home/mailman/bin/list_lists |awk '{print $1}' |sed -n '2,$p'`" > echo " " > for i in $LIST > do > echo ====== $i ====== > echo -n "Total posts to the list: " > grep -i "post to $i " $POST |wc -l > echo -n "Total SUCCESSFUL posts to the list: " > grep -i "post to $i " $POST |grep success |wc -l > SIZ=`grep -i "post to $i" $POST |grep success |cut -f2 -d= |cut -f1 -d,` > k=0; for j in $SIZ; do k=$(( j + k )); done; echo " Total bytes" = $k > echo " " > echo "Top 10 posters to the list:" > grep -i "post to $i " $POST |cut -f 10 "-d " |sort |uniq -c \ > > |sort -bgr |head -10 > > echo " " > done > > > ------------------------------------------------------ > Mailman-Users mailing list > [EMAIL PROTECTED] > http://mail.python.org/mailman/listinfo/mailman-users > Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py ------------------------------------------------------ Mailman-Users mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py