#!/bin/bash
## AH-Get list of logins based on months plus a few other account stats for domain audting. 
echo "USERNAME,last2month_result,last3month_result,last4month_result,last5month_result,last6month_result"
cpl -u | while read puname ; do repquota /home -s | grep $puname   | tail -1  | awk '{print $1,$3}'   ; done > /root/diskusagestat

#mkdir /root/
cpl -u  | while read puname ; do

last6months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "path=xfercpanel|create_user|xml-api" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 5 month")"|wc -l)
last5months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "path=xfercpanel|create_user|xml-api" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 4 month")"|wc -l)
last4months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "path=xfercpanel|create_user|xml-api" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 3 month")"|wc -l)
last3months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "path=xfercpanel|create_user|xml-api" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 2 month")"|wc -l)
last2months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "path=xfercpanel|create_user|xml-api" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m)|$(date  +%Y-%m --date="$(date +%Y-%m-15) -1 month")"|wc -l)

last1month=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "path=xfercpanel|create_user|xml-api" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m)"|wc -l)


if [ $last1month \> 1 ]; then 
                last1month_result=c1_yes 
        else 
                last1month_result=c1_no
fi


if [ $last2months \> 1 ]; then 
                last2month_result=c2_yes     
        else 
                last2month_result=c2_no
fi

if [ $last3months \> 1 ]; then
                last3month_result=c3_yes     
        else 
                last3month_result=c3_no
fi

if [ $last4months \> 1 ]; then
                last4month_result=c4_yes     
        else 
                last4month_result=c4_no
fi

if [ $last5months \> 1 ]; then
                last5month_result=c5_yes     
        else 
                last5month_result=c5_no
fi

if [ $last6months \> 1 ]; then
                last6month_result=c6_yes     
        else 
                last6month_result=c6_no
fi

m_last6months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "webmaild" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 5 month")"|wc -l)
m_last5months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "webmaild" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 4 month")"|wc -l)
m_last4months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "webmaild" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 3 month")"|wc -l)
m_last3months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "webmaild" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m --date="- 2 month")"|wc -l)
m_last2months=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "webmaild" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m)|$(date  +%Y-%m --date="$(date +%Y-%m-15) -1 month")"|wc -l)
m_last1month=$(grep  $puname  /usr/local/cpanel/logs/session_log  | egrep "webmaild" | awk '{print $1,$2,$5,$6,$7,$8}' | sort | uniq | sort -k2n  | grep -v PURGE   | grep -E   "$(date +%Y-%m)"|wc -l)


if [ $m_last1month \> 1 ]; then
                m_last1month_result=m1_yes
        else
                m_last1month_result=m1_no
fi


if [ $m_last2months \> 1 ]; then
                m_last2month_result=m2_yes
        else
                m_last2month_result=m2_no
fi

if [ $m_last3months \> 1 ]; then
                m_last3month_result=m3_yes
        else
                m_last3month_result=m3_no
fi

if [ $m_last4months \> 1 ]; then
                m_last4month_result=m4_yes
        else
                m_last4month_result=m4_no
fi

if [ $m_last5months \> 1 ]; then
                m_last5month_result=m5_yes
        else
                m_last5month_result=m5_no
fi

if [ $m_last6months \> 1 ]; then
                m_last6month_result=m6_yes
        else
                m_last6month_result=m6_no
fi


PDOM=$(grep $puname /etc/trueuserdomains | awk -F ":" '{print $1}')
#PMBOX="$(find  /home/"$puname"/etc/"$PDOM"/ -name "passwd" -exec wc -l {}  \; | awk '{print "mbox="$1}')"
PMBOX=$(if [ ! -f  /home/"$puname"/etc/"$PDOM"/passwd ] ; then echo "mbox=MISSETC" ; else find  /home/"$puname"/etc/"$PDOM"/ -name "passwd" -exec wc -l {}  \; | awk '{print "mbox="$1}' ; fi)

PUSERSPACE=$(grep $puname /root/diskusagestat|awk '{print $2}')

mojoproduct=$(grep "$PDOM" /root/.preports/makespace_with_reaper.sh/record-$(date +"%Y-%m")-*/mojostatus_all.txt| awk -F "|" '{print $2}' | head -1 | sed 's/ /_/' )

PMAILOG_tmp=$(grep $PDOM /var/log/maillog | egrep 'pop3\(.*@p|imap\(.*@' |wc -l )

SERVERIP=$(ip addr | egrep 'lo|global'|awk '{print $2}'|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'|grep -v 127\.0\.0|head -1)
if [  "$(grep IP= /var/cpanel/users/"$puname" | awk -F "=" '{print $2}')" != "$SERVERP" ]  ; then 
           mainip=priIPyes 
        else 
           mainip=priIPno
fi

SERVERMAINIP=$(ip addr | egrep 'lo|global'|awk '{print $2}'|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'|grep -v 127\.0\.0|head -1)
if [  "$(grep IP= /var/cpanel/users/"$puname" | awk -F "=" '{print $2}')" != "$SERVERP" ]  ; then 
         mainip=mainIP=yes 
    else 
        mainip=mainIP=no 
fi

afrins=( 'ns.otherdns.net' 'ns.otherdns.com' 'ns.dns2.co.za' 'ns.dns1.co.za' 'dns1.co.za' 'dns2.co.za' )
afrimx=( 'spe' 'uce' 'mail."$PDOM"' )

authdns () 
{
                for o in $(host -t ns "$PDOM" | head -1 | awk '{print $4}' | sed 's/\.$//g') ; do
                                if [[ "${afrins[@]}" =~ "$o" ]]
                                         then
                                            authdns=afrihostNS
                                        else
                                            authdns=otherNS
                                fi
                done
}
authdns
################################################

authmx () 
{
                for o in $(host -t mx "$PDOM" | head -1 | awk '{print $7}' | sed 's/\.$//g'| grep -o -E 'uce|spambox') ; do
                                if [[ "${afrimx[@]}" =~ " $o"  ]]
                                         then
                                            mxrec=afrihostMX
                                        else
                                            mxrec=otherMX
                                fi
                done
}
authmx

if [ $PMAILOG_tmp \> 10 ]; then
                mailclientauth=mclient_yes
        else
                mailclientauth=mclient_no
fi

echo "$puname,$PDOM,$last1month_result,$last2month_result,$last3month_result,$last4month_result,$last5month_result,$last6month_result,$m_last1month_result,$m_last2month_result,$m_last3month_result,$m_last4month_result,$m_last5month_result,$m_last6month_result,$mojoproduct,$PMBOX,$mailclientauth,$mxrec,$authdns,$mainip,$PUSERSPACE"

done
