Servicios y cronjobs
Dentro de la monitorización de servicios, un buen uso es el de cronjobs con correo.
Tienes más info sobre cronjobs en: apuntes
Un requisito indispensable para que funcione esto es tener postfix y mailutils en el servidor por lo que te recomiendo te mires la siguiente guia: Mailing
Ejemplo 1) Enviar un correo con un reporte diario
Este cronjob enviará un correo con la fecha y hora actuales usando mail.
Creamos un script:
nano ~/reporte_diario.shAñade este contenido:
#!/bin/bash
# Variables
FECHA=$(date "+%Y-%m-%d")
HORA=$(date "+%H:%M:%S")
DESTINATARIO="admin@example.com"
ASUNTO="Reporte Diario - $FECHA"
MENSAJE="Hola, este es el reporte diario. La hora actual es: $HORA"
# Enviar correo
echo "$MENSAJE" | mail -s "$ASUNTO" "$DESTINATARIO"Guarda (Ctrl + X, Y, Enter) y dale permisos de ejecución:
Agregar el cronjob para que se ejecute todos los días a las 8 AM:
Añade esta línea:
Ejemplo 2) Enviar un correo si el servidor está casi sin espacio
Este cronjob revisa si el espacio en disco es menor al 10% y envía una alerta.
Crea el script:
Añade este contenido:
Guarda (Ctrl + X, Y, Enter) y da permisos de ejecución
Agregar el cronjob para revisar cada hora
Añade esta línea:
Ejemplo 3) Enviar un correo si un servicio está caído
Este cronjob revisa si Nginx está funcionando y envía un correo si no lo está, ten en cuenta que, obviamente esto no funcionará para servicios como bind9, postfix o dovecot; pero si para docker o mysql.
Primero, creamos el script
Añade este contenido:
Guarda (Ctrl + X, Y, Enter) y da permisos de ejecución
Agregamos el cronjob para que revise cada 5 minutos
Añade esta línea:
Verificar que los cronjobs funcionan
Para listar las tareas de cron configuradas:
Para revisar si se están enviando los correos, revisa el log del correo:
Última actualización