PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /opt/sharedrads/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //opt/sharedrads/check_imap |
#!/bin/bash LINESDEF="120000"; LINES=$LINESDEF if [ $# -eq 3 ] && [ "$2" == "--lines" ]; then LINES=$3; #echo $LINES; fi #echo $LINES function printUsage () { echo "This script will check /var/log/maillog and active running processes for imap related activity." echo =Check Mailbox Usage Info= echo;echo "$0 --topio" echo "Will show a list of emails with bytes sent and received" echo;echo "$0 --userconns" echo "Show a sorted list of active imap processes per user";echo; echo;echo "$0 --mailbox" echo "Show a sorted list of active imap processes, sorted per mailbox";echo; echo;echo "$0 --mboxsize" echo "Show the size of the mailbox for all connected accounts."; echo "(could drive the load and take some time - use with care)";echo; echo =Check Basic Login Info= echo;echo "$0 --login_email" echo "Prints the email addresses with the most logins.";echo; echo;echo "$0 --login_ip" echo "Prints the IP addresses with the most logins.";echo; echo;echo "$0 --login_failed" echo "Prints highest number of failed logins by IP, address, and the both Address and IP.";echo; echo;echo "$0 --option --lines NUMLINES" echo "This will execute the option, checking NUMLINES back throgh the log file (default is ${LINESDEF})" echo;echo "$0 --checkerror"; echo "Checks to see if you are hitting the maximum number allowed connections"; echo "(Use this if you get complaints of pop timing out or being slow to connect!)"; echo;echo "$0 --help" echo "You're looking at it!" } case $1 in --topio) tail -${LINES-45000} /var/log/maillog |awk ' /LOGOUT/ && /imapd/ && /user=/{ gsub(/rcvd=/,"",$11); gsub(/sent=/,"",$12); rcvd[$7]=rcvd[$7]+$11 sent[$7]=sent[$7]+$12 } /LOGOUT/ && /pop3d/ && /user=/{ gsub(/sent=/,"",$13); gsub(/rcvd=/,"",$12); sent[$7]=sent[$7]+$13 rcvd[$7]=rcvd[$7]+$12 } END{ for (key in sent) { printf "%-80s %-10s %-10s\n",key,sent[key],rcvd[key]; } }' ;; --userconns) ps auwx | grep imapd | awk '{if ($1 ~ /[a-z]+[0-9]+/){print $1}; }' | sort | uniq -c | sort -nk1 ;; --mailbox) ps auwx | grep imapd | awk '{if ($1 ~ /[a-z]+[0-9]+/){print $12}; }' | sort |uniq -c | sort -nk1 ;; --mboxsize) echo "this may take awhile - hit control-C to exit at any time" for account in $(ps axuw | grep "/usr/lib/courier-imap/bin/imapd /home/" | grep -v root | awk '{ print $12 }'|sort | uniq); do du -h --max-depth=0 $account/cur; done ;; --login_ip) tail -${LINES-45000} /var/log/maillog | grep imapd | awk '{print $8}' | sed -e '/^$/d' | sort | uniq -c | sort -nk1 ;; --login_email) tail -${LINES-45000} /var/log/maillog | grep imapd | awk '/LOGIN/{print $7}' | sort | uniq -c | sort -nk1 | tail -2 ;; --login_failed) echo "=Sorted by IP=" tail -${LINES-45000} /var/log/maillog | grep imapd |awk '/LOGIN FAILED/{print $9 }' | sort | uniq -c | sort -nk1 | tail -15 echo "=Sorted by Address=" tail -${LINES-45000} /var/log/maillog | grep imapd | awk '/LOGIN FAILED/{print $8 }' | sort | uniq -c | sort -nk1 | tail -15 echo "=Sorted by Address and IP=" tail -${LINES-45000} /var/log/maillog | grep imapd | awk '/LOGIN FAILED/{print $8, $9}' | sort | uniq -c | sort -nk1 | tail -15 ;; --checkerror) tail -${LINES-45000} /var/log/maillog |grep "maximum active connections"; ;; --help) printUsage; exit 0 ;; *) printUsage; exit 1 ;; esac