Creando un Cron Job personalizado en Linux

Popular:
¡MEJORA LA CONFIGURACIÓN DE TU SERVIDOR! APLICAR AVA Y LANZA CON UN 15% DE DESCUENTO
USA EL CÓDIGO PROMOCIONAL:

Creando un Cron Job personalizado en Linux

Automatizar tareas rutinarias es esencial en cualquier sólido administración del sistema o flujo de trabajo de desarrollo web. Cron jobs proporcionan un potente programador de tareas basado en tiempo en sistemas operativos tipo Unix, permitiéndote ejecutar scripts o comandos automáticamente en intervalos programados.

 ¿Qué es un Cron Job?

Un cron job es una tarea programada definida en el crontab (tabla cron) del sistema que ejecuta comandos o scripts en momentos o intervalos específicos. Cron se usa ampliamente porque es:

  • Ligero

  • Altamente personalizable

  • Integrado en la mayoría de las distribuciones Linux

 Casos de uso comunes

  • Copias de seguridad de bases de datos diarias o semanales

  • Ejecutar scripts PHP/Python

  • Rotación de logs y limpieza de archivos temporales

  • Envío de correos electrónicos programados

  • Actualizar cachés de datos o sincronizar archivos

Paso 1: Acceder al Crontab

Para editar el crontab de tu usuario (sin acceso root):

crontab -e
Para editar el crontab de root (requiere sudo):
sudo crontab -e

Paso 2: Desglose de la sintaxis de Cron

Cada cron job usa el siguiente formato:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

 Ejemplo: Ejecutar un script todos los días a las 2 AM

0 2 * * * /home/user/scripts/backup.sh

Paso 3: Crear un script personalizado

Digamos que quieres ejecutar un script Python personalizado. Primero, crea el archivo:

nano /home/user/scripts/cleanup.py

Script de ejemplo:

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

Haz que el script sea ejecutable:

chmod +x /home/user/scripts/cleanup.py

 Paso 4: Añadir el Cron Job

Edita tu crontab y añade:

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

Esto:

  • Ejecuta el script diariamente a la 1:00 AM

  • Registra la salida en /var/log/cleanup.log

 Casos de uso de ejemplo

✅ Ejecutar cada 10 minutos

*/10 * * * * /home/user/check_status.sh

✅ Ejecutar solo los lunes a las 3 AM

0 3 * * 1 /home/user/scripts/weekly_report.sh

 Deshabilitar o eliminar un Cron Job

Deshabilita temporalmente una línea comentándola con #.

Para eliminar todos los jobs:

crontab -r

Los cron jobs personalizados son una herramienta poderosa para la automatización, el mantenimiento y la fiabilidad. Ya sea que estés gestionando un VPS personal, desplegando scripts de backend o ejecutando cargas de trabajo en producción, dominar cron te permite controlar cuándo y cómo se ejecutan las tareas — sin esfuerzo.