Envíos y recepciones servidor correo, gestión de dominios.
Si queremos saber cuántos cuántos emails reciben y envían nuestros dominios, o mejor dicho, cuántos ‘from‘ y ‘to‘ hay en el registro, creando éste script e instalando un cron, que se ejecuta de manera diaria, antes de las 00:00 recibiremos un email con dicha información.
#DATOS
FECHA=$(date +»%d-%m-%Y»)
SERVIDOR=$(hostname -f)
EMAIL=tu@correo.com
TEMP=/home/shell/temp.txt
touch $TEMP echo «Servidor: $SERVIDOR» >> $TEMP
echo «Fecha: $FECHA» >> $TEMP
echo «Los que mas reciben: » >> $TEMP
cat /usr/local/psa/var/log/maillog | grep -o ‘to=.*@.*’ | sed ‘s/to=.*@//’ | sort | uniq -c | sort -rn | head >> $TEMP
echo «—————————————» >> $TEMP
echo «Los que mas envian: » >> $TEMP
cat /usr/local/psa/var/log/maillog | grep -o ‘from=.*@.*’ | sed ‘s/from=.*@//’ | sort | uniq -c | sort -rn | head >> $TEMP
mail -s «Envios y recepciones de correo en servidor $SERVIDOR» $EMAIL < $TEMP
rm -f $TEMP
En servidores con Onyx este script no se visualizaba correctamente, por lo que lo reescribí (Inserté un sed, para que quedara mejor)
# DATOS
FECHA=$(date +»%d-%m-%Y»)
SERVIDOR=$(hostname -f)
EMAIL=tu@correo.com
TEMP=/home/shell/temp.txt
touch $TEMP
echo «Servidor: $SERVIDOR» >> $TEMP
echo «Fecha: $FECHA» >> $TEMP
echo «Los que mas reciben: » >> $TEMP
cat /usr/local/psa/var/log/maillog | grep -o ‘to=.*@.*’ | sed ‘s/to=.*@//’ | sed ‘s/,.*//’ | sed ‘s/>.*//’ | sort | uniq -c | sort -rn | head -25 >> $TEMP
echo «—————————————» >> $TEMP
echo «Los que mas envian: » >> $TEMP
cat /usr/local/psa/var/log/maillog | grep -o ‘from=.*@.*’ | sed ‘s/from=.*@//’ | sed ‘s/,.*//’ | sed ‘s/>.*//’ | sort | uniq -c | sort -rn | head -25 >> $TEMP
mail -s «Envios y recepciones de correo en $SERVIDOR» $EMAIL < $TEMP
rm -f $TEMP
Reedición; es cierto que los datos que nos dará no son del todo ciertos, ya que en versiones viejas de qmail genera más de un from=asdf@asdf.com por envío. De esto me he dado cuenta con el tiempo.