Page cover

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.sh

Añ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