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
No hay comentarios:
Publicar un comentario