I found this script more useful and time saving than "View Mail Statistics Summary" option in WHM.
==========================
Commands:
vi mailscript.sh
chmod 755 mailscript.sh
./mailscript.sh
==========================
Code : mailscript.sh
Note: You need to change word "username" with any existing username on server ;)
#!/bin/bash
echo > /home/username/temp_eximlog
a=`date --date="5 hours ago" +%Y-%m-%d\ %H`
b=`date +%Y-%m-%d\ %H`
awk -v s="$a" -v e="$b" '$0~s,$0~e' /var/log/exim_mainlog >> /home/username/temp_eximlog
echo > /home/username/mailqueue
echo "Top local senders by message count" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
eximstats /home/username/temp_eximlog | grep -A7 "Top 50 local senders by message count" | tail -5 | awk '{print $1,$NF}' >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "Top Local recipients" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
eximstats /home/username/temp_eximlog | grep -A7 "Top 50 local destinations by message count" | tail -5 | awk '{print $1,$NF}' >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "No of emails sent by authenticated user" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
cat /home/username/temp_eximlog | grep dovecot | awk {'print $9'}| cut -d: -f2|sort|uniq -c|sort -n >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "No of emails sent through script" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
grep "cwd=" /home/username/temp_eximlog|awk '{for(i=1;i<=10;i++){print $i}}'|sort|uniq -c|grep cwd|sort -n >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "Number of hits from an IP" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
tail -n1000 /home/username/temp_eximlog |grep SMTP|cut -d[ -f2|cut -d] -f1|sort -n |uniq -c >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "IP and no of tries done the IP to send mail but rejected by the server" >> /home/username/mailqueue
tail -3000 /home/username/temp_eximlog |grep 'rejected RCPT' |awk '{print$4}'|awk -F\[ '{print $2} '|awk -F\] '{print $1} '|sort | uniq -c | sort -k 1 -nr | head -n 5 >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "Connections from a certain ip to the SMTP server" >> /home/username/mailqueue
netstat -plan|grep :25|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
cat mailqueue | mail -s "Mail Stats" uday.gade@yahoo.com
==========================
Commands:
vi mailscript.sh
chmod 755 mailscript.sh
./mailscript.sh
==========================
Code : mailscript.sh
Note: You need to change word "username" with any existing username on server ;)
#!/bin/bash
echo > /home/username/temp_eximlog
a=`date --date="5 hours ago" +%Y-%m-%d\ %H`
b=`date +%Y-%m-%d\ %H`
awk -v s="$a" -v e="$b" '$0~s,$0~e' /var/log/exim_mainlog >> /home/username/temp_eximlog
echo > /home/username/mailqueue
echo "Top local senders by message count" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
eximstats /home/username/temp_eximlog | grep -A7 "Top 50 local senders by message count" | tail -5 | awk '{print $1,$NF}' >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "Top Local recipients" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
eximstats /home/username/temp_eximlog | grep -A7 "Top 50 local destinations by message count" | tail -5 | awk '{print $1,$NF}' >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "No of emails sent by authenticated user" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
cat /home/username/temp_eximlog | grep dovecot | awk {'print $9'}| cut -d: -f2|sort|uniq -c|sort -n >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "No of emails sent through script" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
grep "cwd=" /home/username/temp_eximlog|awk '{for(i=1;i<=10;i++){print $i}}'|sort|uniq -c|grep cwd|sort -n >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "Number of hits from an IP" >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
tail -n1000 /home/username/temp_eximlog |grep SMTP|cut -d[ -f2|cut -d] -f1|sort -n |uniq -c >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "IP and no of tries done the IP to send mail but rejected by the server" >> /home/username/mailqueue
tail -3000 /home/username/temp_eximlog |grep 'rejected RCPT' |awk '{print$4}'|awk -F\[ '{print $2} '|awk -F\] '{print $1} '|sort | uniq -c | sort -k 1 -nr | head -n 5 >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
echo "Connections from a certain ip to the SMTP server" >> /home/username/mailqueue
netstat -plan|grep :25|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 >> /home/username/mailqueue
echo "=============================" >> /home/username/mailqueue
cat mailqueue | mail -s "Mail Stats" uday.gade@yahoo.com
No comments:
Post a Comment