script UNIX

script envios email servidor unix

Tareas de un administrador de sistemas

Si quisiéramos saber cuántos envíos se han hecho, basta con éste comando, que básicamente lo que hace es buscar una cadena de caracteres en concreto, que suele ser el indicador de un nuevo correo electrónico en el registro.

«cat /usr/local/psa/var/log/maillog | grep -o «new msg» | sed s’/new msg/mensajes/’ | sort | uniq -c | sort -rn»

En versiones de plesk onyx, genera un registro distinto y el identificador «new msg» no existe, por lo que buscamos la cadena de texto «status=sent»

«cat /usr/local/psa/var/log/maillog | grep -o «status=sent» | sed s’/status=sent/mensajes/’ | sort | uniq -c | sort -rn»

Si quisiéramos crear un script que nos haga el recuento de manera automática, podemos incluir el siguiente texto, junto con un cron a última hora del día (siempre teniendo en cuenta que el archivo maillog se autoguarde en maillog.processed, sino el resultado no será fiable)

FECHA=$(date +»%d-%m-%Y»)
EMAIL=tu@correo.com
TEMP=/home/shell/temp1.txt
SERVER=$(hostname -f)
# archivos de texto
touch $TEMP
echo «TOTAL DE CORREOS ELECTRONICOS DEL SERVIDOR $SERVER A FECHA $FECHA»
>> $TEMP
cat /usr/local/psa/var/log/maillog | grep -o «new msg» | sed s’/new
msg/mensajes/’ | sort | uniq -c | sort -rn >> $TEMP
mail -s «correos totales $SERVER a $FECHA» $EMAIL < $TEMP
rm -f $TEMP

Lo dicho, si en nuestro registro no tenemos new msg, tendremos «status=sent» u otro idendtificador que nos pueda servir para nuestro propósito.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Utilizamos "cookies" propias y de terceros para estadística y publicidad personalizada mediante análisis de su navegación. Si continúa navegando acepta su uso y se descartará este mensaje. Más información y política de cookies. ACEPTAR
Aviso de cookies