Skip to content

Instantly share code, notes, and snippets.

@rushipkar90
Last active November 12, 2015 08:18
Show Gist options
  • Save rushipkar90/ba1d452e3d80521381a9 to your computer and use it in GitHub Desktop.
Save rushipkar90/ba1d452e3d80521381a9 to your computer and use it in GitHub Desktop.
hrmailscript.sh
#!/bin/bash
echo > /usr/local/src/temp_eximlog
echo > /usr/local/src/topsender.txt
echo > /usr/local/src/topsenderscript.txt
a=`date --date="1 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 >> /usr/local/src/temp_eximlog
cat /usr/local/src/temp_eximlog | grep dovecot | awk {'print $8, $9, $10, $11}' | replace "A=dovecot_plain:" "+" | grep "+" | cut -d "+" -f2 | awk '{print $1}' | sort | uniq -c | sort -nr > /usr/local/src/mailauths.txt
IFS=$'\n'
for i in $(cat /usr/local/src/mailauths.txt | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'); do
#echo $i;
mailcount=`echo $i | awk '{print $1}'`;
#echo $mailcount
if [ $mailcount -ge 150 ]
then
authaccount=`echo $i | awk '{print $2}'`;
#echo $authaccount;
echo $i >> /usr/local/src/topsender.txt
fi
done
grep "cwd=" /usr/local/src/temp_eximlog|awk '{for(i=1;i<=10;i++){print $i}}'|sort|uniq -c|grep cwd|sort -n | grep -v "/var/spool/exim" | grep -v "/root" | grep -v "/etc/csf" | grep -vw "/" | grep -v "/usr/local/src" | sort -nr > /usr/local/src/scriptmail.txt
IFS=$'\n'
for j in $(cat /usr/local/src/scriptmail.txt | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'); do
#echo $j;
scriptcount=`echo $j | awk '{print $1}'`;
#echo $scriptcount
if [ $scriptcount -ge 150 ]
then
#scriptpath=`echo $j | awk '{print $2}'`;
#echo $scriptpath;
echo $j >> /usr/local/src/topsenderscript.txt
fi
done
token=`cat /usr/local/src/topsender.txt | grep -v '^$' | wc -l`;
if [ $token -ne 0 ]
then
cat /usr/local/src/topsender.txt | grep -v '^$' | mail -s "Top email sender" [email protected];
fi
token2=`cat /usr/local/src/topsenderscript.txt | grep -v '^$' | wc -l`;
if [ $token2 -ne 0 ]
then
cat /usr/local/src/topsenderscript.txt | grep -v '^$' | mail -s "Top emails sent through script" [email protected];
fi
for k in `cat /usr/local/src/topsenderscript.txt | grep -v '^$'| cut -d= -f2` ; do
countvar=`echo $k | cut -d/ -f4`
echo $countvar;
echo $k;
if [ ! -z "$countvar" ]
then
echo $k
tobescanned=`echo $k | cut -d/ -f4,3,2,1`
echo $tobescanned
sh /usr/local/src/scanmailqueue-indi.sh $tobescanned >> /usr/local/src/cronscanresults.txt;
fi
done
if [[ -s /usr/local/src/cronscanresults.txt ]] ; then
cat /usr/local/src/cronscanresults.txt | mail -s "scanned results" [email protected];
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment