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.