Mostrando entradas con la etiqueta email. Mostrar todas las entradas
Mostrando entradas con la etiqueta email. Mostrar todas las entradas

lunes, 17 de febrero de 2014

Script para enviar totales de tráfico de red vía email

El siguiente código fuente muestra cómo podemos enviar vía email los totales de tráfico de red obtenidos a través del software ipfm (IP Flow-meter). Realizando una correcta configuración de ipfm podemos obtener en un archivo con el formato ipfm-global-YYYY-mm-dd.log el volumen de tráfico generado diariamente (por ejemplo). Estos totales pueden ser volcados a un archivo de texto que constituirá el cuerpo del mensaje de correo electrónico que enviaremos a nuestra cuenta de monitorización.

De manera paralela, a través de este archivo de totales podemos incorporar en nuestro apache un script realizado en php que, tomando los datos de dicho archivo, nos mostrará en formato web lo descargado por los equipos que forman nuestra red. Puedes encontrár más información sobre esto en: http://scripfm.sourceforge.net/



Este es el código fuente:

#!/bin/bash

#Script que envía el estado del log de tráfico de ipfm a través
#de un mensaje de correo electrónico enviado desde la consola

servidor="[nombre del servidor]"
hoy=`date +%Y_%d_%m`
actual=`date +%Y-%m-%d`

if [ -f estadotrafico.txt ]
then
    rm estadotrafico.txt
else
    touch estadotrafico.txt
fi

echo "Subject: Estado del tráfico $servidor" >> estadotrafico.txt
echo
echo
echo "Trafico: $hoy" >> estadotrafico.txt
#Enviamos contenido archivo con totales diarios
cat /var/log/ipfm/ipfm-global-$actual.log >> estadotrafico.txt


sudo ssmtp tudirecciondecorreo@dominio.com < estadotrafico.txt

viernes, 7 de febrero de 2014

Instalador servicio correo ssmtp para alertas por email

Complementando las entradas de script de instalación y configuración automática de servicios en un servidor, os propongo una posible solución para dotar a un servidor de capacidad para enviar correos electrónicos de alerta a su administrador. Para ello, se realiza la instalación del servicio ssmtp (servicio de correo electrónico simple) y su correspondiente configuración modificando los archivos ssmtp.conf y revaliases, según la configuración que se indique desde teclado.


Para comprobar el correcto funcionamiento del servicio ssmtp, una vez haya sido instalado y configurado desde el script, sólo tendremos que teclear en la consola de comandos algo como esto:

ssmtp dirección_destino@loquesea.com < mensaje.txt

donde mensaje.txt deberá tener un formato adecuado, tal que así:

from: servidor que envia la alerta
subject: asunto de la alerta
# línea en blanco
texto de la alerta, tantas líneas como se necesiten

En este enlace puedes encontrar más información relacionada con el envío y preparación de correos electrónicos a través de consola. Y hacia el final de esta otra entrada podrás encontrar la primera versión de instalación automática del servicio ssmtp y envío de alertas por email.

En próximas entradas de este mismo blog, os mostraremos scripts que construirán mensajes de alerta automáticos en función del servicio/os que puedan haber caído.

#!/bin/bash

#Script que instala y configura servicio
#de correo electrónico ssmtp

#-------------------------------------
#     FUNCIONES
#-------------------------------------

function eresroot()
{
    if [ "$LOGNAME" != "root" ]              
    then
        echo "Este script debe ser ejecutado con privilegios de root."
        exit 1
    fi 
}

function configura()
{

    #1) Saco copia de seguridad
    if [ -f /etc/ssmtp/ssmtp.conf.old ]
    then
        echo "No se sacará copia de seguridad de ssmtp.conf"
    else
        cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.old
    fi

    if [ -f /etc/ssmtp/revaliases.old ]
    then
        echo "No se sacará copia de seguridad de revaliases"
    else
        cp /etc/ssmtp/revaliases /etc/ssmtp/revaliases.old
    fi


    #2) Modifico ssmtp.conf

    read -p "Introduce el usuario de gmail (sin @gmail.com): " usuario_gmail
    read -s -p "Introduce la contraseña: " clave_gmail

    echo "root=$usuario_gmail@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=$usuario_gmail
AuthUser=$usuario_gmail@gmail.com
AuthPass=$clave_gmail
FromLineOverride=YES
UseSTARTTLS=YES " > /etc/ssmtp/ssmtp.conf

    #3) Modifico revaliases
    echo "root:$usuario_gmail@gmail.com:smtp.gmail.com:587
tu_usuario_linux:$usuario_gmail@gmail.com:smtp.gmail.com:587" >> /etc/ssmtp/revaliases

}

function instala()
{

    which ssmtp
    if [ $? -ne 0 ]
    then
        # Hacemos una instalación silenciosa y sin confirmación
        sudo apt-get install -y -q=2 ssmtp
        if [ $? -eq 0 ]
        then
            echo "Instalación correcta de ssmtp"
            configura
        else
            echo "Error en la instalación de ssmtp"
            exit 1
        fi
    else
        configura   
    fi


}


#-------------------------------------
#     PROGRAMA PRINCIPAL
#-------------------------------------
eresroot
instala