Cron jobs en C desde cero: un tutorial práctico

Fuentes: Cron Jobs in C from Scratch

Daniel Hirsch presenta una sesión de programación de algo más de una hora en la que construye desde cero un ejecutor de tareas programadas (cron jobs) en lenguaje C. El vídeo está dirigido a estudiantes y desarrolladores que quieran comprender el funcionamiento interno de las tareas automáticas en sistemas tipo Unix sin depender de herramientas externas.

El contenido arranca con una explicación conceptual: un cron job es una tarea automatizada que el demonio cron ejecuta en momentos o intervalos concretos. Hirsch muestra ejemplos prácticos de uso, como borrar un directorio de miniaturas cada minuto mediante crontab, automatizar copias de seguridad con cp, rsync o rclone, o programar scripts de mantenimiento. Después repasa la sintaxis clásica de crontab (minuto, hora, día del mes, mes y día de la semana) y aclara el papel del servicio crond, que revisa cada minuto los archivos de configuración.

En la parte práctica, el autor crea un proyecto minimalista llamado cronrunner. Parte de un archivo fuente en C con un main básico y, paso a paso, incorpora la función system() de la biblioteca estándar para ejecutar comandos del shell, ilustra cómo fork y exec entran en juego internamente y compila el binario con gcc. Aunque no implementa la sintaxis completa de crontab ni convierte el programa en un servicio de systemd, deja claro cómo extenderlo.

El vídeo incluye además enlaces a un curso de C, al código fuente de los proyectos del autor y a su Patreon. Se trata, en definitiva, de una introducción didáctica que combina teoría de sistemas Unix con programación en C de bajo nivel.