Guías de Cron
Guías

Cron vs. alternativas: temporizadores de systemd y programadores en la nube

Cuándo usar otro programador en lugar de crontab

crontab ha sido durante décadas el estándar de la programación de tareas en Unix, pero hoy existen muchas alternativas entre las que elegir según el objetivo. Lo importante es que la propia expresión de horario usa en la mayoría de los casos la misma sintaxis cron de 5 campos. Por eso, sea cual sea la plataforma que uses, puedes validar antes la expresión con esta herramienta.

Los temporizadores de systemd son la alternativa por defecto en el Linux moderno. A diferencia de cron, permiten ver los registros de ejecución directamente con journalctl, gestionar dependencias con las unidades de servicio y ejecutar tras el arranque las tareas que se perdieron mientras el sistema estuvo apagado, gracias a la opción Persistent=true. Ahora bien, la notación del tiempo no es la sintaxis de cron, sino el formato OnCalendar, que hay que aprender aparte.

Los programadores en la nube y sin servidor (serverless) son populares en los entornos gestionados. AWS EventBridge Scheduler, GCP Cloud Scheduler, Vercel Cron, Cloudflare Cron Triggers y otros aceptan en su mayoría la expresión cron estándar tal cual y no exigen gestionar un servidor por tu cuenta. Eso sí, debes comprobar siempre que la zona horaria de referencia para la ejecución suele ser UTC.

Los horarios de las canalizaciones de CI también se usan a menudo. El on: schedule de GitHub Actions o los horarios de canalización de GitLab CI son adecuados para ejecutar periódicamente tareas del repositorio (pruebas, despliegues, informes). Usan la sintaxis de cron, pero se basan en UTC y, debido a la espera de los ejecutores (runners), pueden retrasarse varios minutos respecto a la hora exacta.

El criterio de elección es sencillo. Si es una tarea que corre en un único servidor Linux, lo natural es cron o un temporizador de systemd; si quieres ejecutarla de forma gestionada y sin servidor, un programador en la nube; y si es una tarea ligada al repositorio, un horario de CI. En cualquier caso, comprueba las próximas ejecuciones de la cadena de horario con este intérprete antes de pegarla.

Recursos

Colección de horarios

Recetas para copiar y usar al instante

Chuleta de sintaxis

Los 5 campos y los caracteres especiales de un vistazo

Macros y alias

Expresiones abreviadas como @daily

Guías

Guías prácticas para entender bien cron y cometer menos errores