Aquí varios scripts utilizados para analizar el uso del servidor de correo qmail. Se pueden utilizar independientemente o el primero llamará al resto:
[root@test scripts]# cat chkStatus.sh #!/bin/bash echo "" echo "" echo "Consultas de estado. Servidor Qmail" echo "===================================" echo "" echo "TCP Server Hits:" /root/scripts/chkTcpServerHits.sh $1|cut -c12-50 echo "RBL Hits:" /root/scripts/chkRblHits.sh $1|cut -c12-50 echo "SPAM Hits:" /root/scripts/chkSpamHits.sh $1|cut -c13-50 echo "Spam Deleted: " /root/scripts/chkSpamHitsDeleted.sh $1|cut -c13-50 echo "Virus Hits:" /root/scripts/chkVirusHits.sh $1|cut -c13-50 echo "Qtrap Hits:" /root/scripts/chkQtrapHits.sh $1|cut -c12-50 echo "Failure:" /root/scripts/chkFailure.sh $1|cut -c12-50 echo "Pop3 Hits:" /root/scripts/chkPopHits.sh $1|cut -c12-50 echo "Send Local:" /root/scripts/chkSendLocal.sh $1|cut -c12-50 echo "Send Remote:" /root/scripts/chkSendRemote.sh $1|cut -c12-50 echo "" echo "Estado de las colas: " qmailctl queue echo "" echo "Uptime: " uptime echo "" [root@test scripts]# cat chkTcpServerHits.sh #!/bin/bash # 20070417-hvivani-Obtiene total de tcpserver: pid de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen cat /var/log/qmail/qmail-smtpd/*|grep "tcpserver: pid"| \ # convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!! /usr/local/bin/tai64nlocal | \ # busco el human readable timestamp para todas las instancias de la fecha grep $fecha | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkRblHits.sh #!/bin/bash # 20070417-hvivani-Obtiene total de rblsmtpd de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen cat /var/log/qmail/qmail-smtpd/*|grep "rblsmtpd:"| \ # convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!! /usr/local/bin/tai64nlocal | \ # busco el human readable timestamp para todas las instancias de la fecha grep $fecha | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkSpamHits.sh #!/bin/bash # 20070417-hvivani-Obtiene total de SPAM de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%c --date=$1|cut -c5-15` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco para determinar la cantidad de lineas que lo contienen cat /var/spool/qscan/qmail-queue.log|grep "smells like SPAM"|cut -c6-16| \ # busco la fecha grep "$fecha" | \ # cuento numero de lineas wc -l # end exit [root@einstein scripts]# cat chkSpamHitsDeleted.sh #!/bin/bash # 20070417-hvivani-Obtiene total de SPAM eliminado de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%c --date=$1|cut -c5-15` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco para determinar la cantidad de lineas que lo contienen cat /var/spool/qscan/qmail-queue.log|grep "deleting message..."|cut -c6-16| \ # busco la fecha grep "$fecha" | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkVirusHits.sh #!/bin/bash # 20070417-hvivani-Obtiene total de virus de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%c --date=$1|cut -c5-15` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco para determinar la cantidad de lineas que lo contienen cat /var/spool/qscan/qmail-queue.log|grep "there be a virus"|cut -c6-16| \ # busco la fecha grep "$fecha" | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkQtrapHits.sh #!/bin/bash # 20070418-hvivani-Obtiene total dets del qtrap de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` fechaQtrap=`date +%m/%d/%y --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco en los logs para determinar la cantidad de lineas que lo contienen cat /home/vpopmail/qtrap/logs/qtrap.log|grep "$fechaQtrap"|wc -l # end exit [root@test scripts]# cat chkFailure.sh #!/bin/bash # 20070418-hvivani-Obtiene total de failure de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco en los logs para determinar la cantidad de lineas que lo contienen cat /var/log/qmail/qmail-send/*|grep "failure: "| \ # convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!! /usr/local/bin/tai64nlocal | \ # busco el human readable timestamp para todas las instancias de la fecha grep $fecha | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkPopHits.sh #!/bin/bash # 20070417-hvivani-Obtiene total de tcpserver: pid de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen cat /var/log/qmail/qmail-pop3d/*|grep "tcpserver: pid"| \ # convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!! /usr/local/bin/tai64nlocal | \ # busco el human readable timestamp para todas las instancias de la fecha grep $fecha | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkSendLocal.sh #!/bin/bash # 20070417-hvivani-Obtiene total de entregas locales de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen cat /var/log/qmail/qmail-send/*|grep "to local "| \ # convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!! /usr/local/bin/tai64nlocal | \ # busco el human readable timestamp para todas las instancias de la fecha grep $fecha | \ # cuento numero de lineas wc -l # end exit [root@test scripts]# cat chkSendRemote.sh #!/bin/bash # 20070417-hvivani-Obtiene total de entregas remotas de los logs de qmail para una fecha pasada por linea de comandos. fecha=`date +%Y-%m-%d --date=$1` # imprimo fecha. Puede cambiarse para otros dias echo $fecha | \ # coloco una coma awk '{printf $0","}' \ # busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen cat /var/log/qmail/qmail-send/*|grep "to remote "| \ # convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!! /usr/local/bin/tai64nlocal | \ # busco el human readable timestamp para todas las instancias de la fecha grep $fecha | \ # cuento numero de lineas wc -l # end exit