Cron Jobs: qué son, para qué sirven y cómo se crean
Introducción
En algún momento de nuestra vida como desarrolladores y/o programadores web, llega un momento en que por h o por b, necesitamos ejecutar tareas automáticamente: limpieza de algunos registros, envío de correos, generación de copias de seguridad, sincronización de datos o simplemente ejecución de scripts… para lo que sea.
Para automatizar este tipo de procesos, los sistemas Unix y Linux incorporan un componente/servicio esencial llamado cron, conocido mejor como: cron job.
En este artículo, una vez veamos qué son, aprenderemos a crearlos y a configurarlos. Y si, también los podemos usar en hosting compartidos, como por ejemplo Hostinger 😎
¡Un momento! ¿Pero qué pasa con Windows? En Windows no existe. Aunque se puede decir que tiene un equivalente llamado programador de tareas.
Volviendo a cron…
¿Qué es un Cron Job?
Podemos decir que un cron job es una tarea programada que se ejecuta automáticamente en el servidor a intervalos definidos por el usuario.
Como dijimos al principio, cron es un servicio que está disponible en los sistemas Unix/Linux y es responsable de ejecutar órdenes en momentos determinados.
Con “órdenes” nos referimos a la posibilidad de ejecutar tanto scripts (PHP, Python, MySQL, etc.) como comandos del sistema operativo o programas externos.
La principal ventaja de cron, es que no requiere intervención humana, es decir, una vez configurado, se ejecuta solo.
Sintaxis de un cron job
Antes de ver como creamos un cron job, debemos saber cómo se estructura.
Como hemos dicho antes, un cron job se encarga de ejecutar órdenes, por tanto, lo único que debemos hacer es especificar qué queremos que se ejecute y cuando.
Para ello, cron dispone de una sintaxis la cual es la siguiente:
* * * * * + comando o script a ejecutar
Tranquil@ es sencillo 😉
- El primer asterisco siempre hace referencia a los minutos (0-59)
- El segundo a la hora (0-23)
- El tercero al día del mes (1-31)
- El cuarto asterisco *, hace referencia al mes (1-12) o también en inglés jan, feb, mar…
- El quinto se refiere al dia de la semana (0-6) siendo 0 lunes y 6 domingo. Aunque también se puede escribir en inglés: sun,mon,tue, etc.
Si dejamos el asterisco (*) tal cual, estaremos permitiendo todos los valores posibles para ese campo.
¿No te ha quedado claro? Espera, te muestro una imagen:

¿Mejor? 😜
Ahora, supongamos que queremos ejecutar un script PHP y queremos que se ejecute cada día a las 02:00 horas.
Pues es tan fácil como escribir:
0 2 * * * php /ruta/script.php
Como vemos, le indicamos los minutos y la hora, pero al dejar los asteriscos, le estamos diciendo que ejecute el script cada día del mes, cada mes y cada día de la semana.
¡Un momento!
Pero y si queremos que el script, orden, programa… o lo que sea, ¿se ejecute cada 15 minutos?
¡Fácil!
Primero tenemos que saber que, para especificar dos o más valores en cada variable, debemos separarlas por comas. O sea, que si queremos ejecutar un script cada 15 minutos hacemos:
0,15,30,45 * * * * php /ruta/script.php
Y el script se ejecutará en los minutos 00, 15, 30 y 45.
Ahora bien, podríamos pensar en hacer esto otro:
0,15 * * * * php /ruta/script.php
Pero no sería correcto, ya que el script en ese caso se ejecutaría en el minuto 00 y en el minuto 15 de cada hora. ¡Es importante tener en cuenta esto! Por cierto, una alternativa más elegante es hacerlo de esta otra manera:
*/15 * * * * php /ruta/script.php
Esto sí que ejecuta el script cada 15 minutos.
Uso de cron job
Hasta ahora hemos visto la sintaxis de cron y las posibilidades que ofrece, pero seguro que te preguntas: ¿cómo se utiliza realmente?
Es decir, ¿necesitamos ejecutar algún comando específico o basta con escribir directamente en la terminal algo como 0 2 * * * php /ruta/script.php?
Pues bien, debemos de saber que la expresión cron no es un comando que se pueda ejecutar en la terminal como tal, sino una instrucción que debe registrarse para que el sistema la interprete y la ejecute automáticamente en el momento indicado.
Recuerda: “La orden se registra en el sistema y cron lo ejecuta automáticamente cuando llega la hora.”
Así que lo que hacemos es escribir en la terminal crontab -e y se nos abrirá un editor con el archivo de cron del usuario. Es ahí donde ponemos las ordenes que queramos ejecutar (una en cada línea).
Por ejemplo:
0 2 * * * php /ruta/script.php */15 * * * * php /ruta/script-A.php ... Etc.
Una vez guardado, ya se encargará cron de ejecutarlo.
Algunos comandos útiles son:
- crontab -l: Lista los cron jobs del usuario
- crontab -e: Edita el crontab del usuario y también se usa para añadir nuevas tareas/ordenes.
- crontab -r: Elimina todos los cron Jobs
- crontab -i -r: Elimina cron jobs con confirmación
- crontab -u usuario -l: Lista cron de otro usuario (root)
Bueno, creo que es bastante sencillo ¿no? Pruébalo y me dices 😉
Cron jobs en hosting compartido
Si tenemos un VPS o servidor contratado no hay ningún problema, pero si nos alojamos en un hosting compartido debemos saber que no todos permiten ejecutar el servicio cron. No es el caso de Hostinger, el cual no solo nos permite usar cron, sino hacerlo de una forma rápida y sencilla.
Hostinger ofrece una interfaz muy sencilla para programar cron jobs, y es ideal para usuarios que no quieren editar crontabs manualmente.
Dicho esto, veamos ahora cómo configurar un cron job en Hostinger.
Y si utilizas un proveedor de hosting diferente, conviene aclarar dos puntos importantes:
Primero, no debes preocuparte. Si tu hosting compartido permite el uso de cron jobs, el proceso será muy similar al que veremos a continuación.
Segundo, si aún no utilizas Hostinger ¿A qué esperas? Quizá sea buen momento para planteártelo 🙂
Crear un cron job en Hostinger
Estando en el panel (hPanel) de Hostinger nos dirigimos a: «Sitio web -> Panel de nuestro sitio -> Avanzado -> Cron Jobs.»

Hostinger ofrece una interfaz visual donde tú eliges:
- Frecuencia (cada 5 min, cada hora, diario, etc.)
- Comando a ejecutar
En un hosting compartido, el comando típico para PHP es: «ruta binario php + ruta script php»
Por ejemplo:
/usr/bin/php /home/usuario/public_html/scripts/limpieza.php
O con la ruta absoluta que Hostinger indique en tu panel (cada servidor la personaliza).

Como vemos nos incluye ya la ruta del binario de PHP + la ruta de nuestro usuario. O sea que solo tendríamos que poner la ruta del script y establecer una frecuencia.
Por cierto, los ejemplos los estamos viendo simulando un script PHP, pero recuerda que puede ser cualquier otra cosa.
Conclusión
Los cron jobs son una herramienta esencial para automatizar procesos dentro de cualquier proyecto web, pero también fuera de la web, es decir, en nuestro ordenador mismo podemos usarlos para ejecutar tareas de mantenimiento o limpieza sin intervención manual.
Y, por otro lado, está bien saber que Hostinger ofrece un entorno muy accesible para crear cron jobs incluso en planes compartidos, lo que lo convierte en una solución efectiva para automatizar scripts PHP o cualquier tarea repetitiva.
Espero que este post/articulo te haya gustado, te sirva de ayuda y, cualquier duda o aporte ya sabes, me lo puedes hacer saber en comentarios o por cualquier otro medio disponible 😉
Sobre el autor
Este artículo está publicado bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Puedes compartirlo y adaptarlo, incluso con fines comerciales, siempre que cites al autor y mantengas esta misma licencia.

