Encontranos en redes
CronAutomatizaciónTareas6 min de lectura
Programar tareas con Cron
Programá tareas automáticas con Cron para ejecutar scripts y comandos en horarios definidos.
Cron es el programador de tareas de Linux. Te permite ejecutar scripts y comandos automáticamente en horarios definidos.
Sintaxis de Cron
terminal
┌───────────── minuto (0-59)
│ ┌───────────── hora (0-23)
│ │ ┌───────────── día del mes (1-31)
│ │ │ ┌───────────── mes (1-12)
│ │ │ │ ┌───────────── día de la semana (0-7, 0 y 7 = domingo)
│ │ │ │ │
* * * * * comandoPaso 1 — Editar el crontab
bash
crontab -eLa primera vez te pide elegir editor. Seleccioná nano (opción 1).
Paso 2 — Ejemplos comunes
bash
# Cada 5 minutos
*/5 * * * * /home/deploy/scripts/check-health.sh
# Todos los días a las 3:00 AM
0 3 * * * /home/deploy/scripts/backup.sh
# Cada lunes a las 9:00 AM
0 9 * * 1 /home/deploy/scripts/weekly-report.sh
# Primer día de cada mes a medianoche
0 0 1 * * /home/deploy/scripts/monthly-cleanup.sh
# Cada hora
0 * * * * /usr/bin/curl -s https://miapp.com/api/cron/hourlyPaso 3 — Listar tareas programadas
bash
crontab -lPaso 4 — Redirigir salida a un log
bash
0 3 * * * /home/deploy/scripts/backup.sh >> /var/log/backup.log 2>&1Paso 5 — Variables de entorno en Cron
Cron no carga tu perfil. Definí variables al inicio del crontab:
bash
PATH=/usr/local/bin:/usr/bin:/bin
HOME=/home/deploy
0 3 * * * $HOME/scripts/backup.shCron del sistema
Para tareas que requieren root:
bash
sudo crontab -eO usá los directorios predefinidos:
bash
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/Depurar problemas con Cron
bash
# Ver logs de cron
sudo grep CRON /var/log/syslog
# Verificar que el servicio está activo
sudo systemctl status cronHerramienta útil
Usá crontab.guru para validar expresiones cron antes de agregarlas.
¿Te resultó útil esta guía?