Tareas cron explicadas: sintaxis de crontab con ejemplos
Cron ejecuta comandos según un horario en servidores Linux y macOS. Esta guía explica el formato de crontab, muestra los horarios más usados y enumera los errores que hacen que las tareas cron fallen sin avisar.
Abrir la herramienta: Explicador y generador de expresiones cron
Añadir una tarea cron
Ejecuta crontab -e para abrir tu crontab personal en un editor. Añade una línea por tarea: los cinco campos de horario seguidos del comando, por ejemplo 0 2 * * * /home/yo/backup.sh. Guarda y cierra el editor, y cron aplica el cambio automáticamente.
Usa crontab -l para listar tus tareas. Las tareas del sistema están en /etc/crontab y /etc/cron.d, donde un campo extra después del horario indica el usuario que ejecuta el comando.
Leer los cinco campos
De izquierda a derecha, los campos son minuto, hora, día del mes, mes y día de la semana. Una tarea se ejecuta cuando todos los campos coinciden con la hora actual. El asterisco acepta cualquier valor, las comas forman listas, los guiones rangos y la barra define un paso.
Guardar la salida en un registro
Cron no tiene terminal, así que la salida se envía por correo al usuario o se pierde. Añade >> /var/log/mitarea.log 2>&1 al final del comando para tener un registro que revisar si algo falla.
Por qué no se ejecuta una tarea cron
- El PATH de cron es mínimo. Usa rutas completas a programas y scripts, como /usr/bin/python3.
- El script no es ejecutable. Ejecuta chmod +x sobre él.
- No se cargan las variables de entorno de tu perfil de shell. Defínelas en el crontab o en el script.
- La zona horaria del servidor es distinta de la tuya. Compruébalo con date o timedatectl.
- Un % en el comando se convierte en salto de línea. Escríbelo como \%.
Comprueba el horario antes de publicarlo
Pega la expresión en el explicador de cron de esta página para verla en palabras claras y revisar las próximas ejecuciones. Detecta valores fuera de rango y la trampa del día del mes y el día de la semana antes de que la tarea entre en producción.