Jan 07, 2026
Diego B.
9min de lectura
Una tarea cron o cron job es un programador basado en el tiempo en sistemas operativos tipo Unix, como Linux y macOS. Automatiza tareas repetitivas como las copias de seguridad, el mantenimiento del sistema y la ejecución de scripts.
Los usuarios definen una programación y un comando en un archivo crontab para mantener los procesos críticos en ejecución constante en segundo plano sin intervención manual.
Para utilizar cron con eficacia, es necesario conocer sus componentes básicos:
Un cron job es una utilidad que permite a los usuarios de Linux y Unix ejecutar comandos o scripts automáticamente a una hora y fecha determinadas. En lugar de ejecutar un comando manualmente todos los días o semanas, se programa una vez y el sistema lo ejecuta en segundo plano a la hora establecida.
Esta automatización es importante para la gestión de servidores. Por ejemplo, un administrador de sistemas que gestiona un servidor privado virtual (VPS) no puede realizar copias de seguridad de las bases de datos manualmente todas las noches a las 3:00 AM.
Un cron job se encarga de esta tarea de forma fiable, mejorando la eficiencia y reduciendo los errores humanos.
Entre los casos de uso comunes de las tareas cron se incluyen
Un job cron se ejecuta a través del demonio cron (crond), un servicio en segundo plano que se ejecuta continuamente y ejecuta los comandos definidos en los archivos de cron table (crontab).
Cada minuto, el daemon comprueba los archivos de configuración y determina si hay alguna tarea programada para ejecutarse en ese momento.
Es importante distinguir entre los dos tipos de archivos de configuración:
La sintaxis de crontab define tareas programadas (cron jobs) utilizando una sola línea con cinco campos de hora y fecha seguidos del comando a ejecutar. Los operadores especiales añaden flexibilidad a la hora de definir intervalos de tiempo.
Este es el formato básico de una entrada crontab:
minuto hora día_del_mes mes día_de_la_semana comando_a_ejecutar
Los cinco campos de temporización definen cuándo se ejecuta una tarea cron. El sistema lee la programación en el siguiente orden:
| Campo | Descripción | Valores permitidos |
| Minuto | El minuto de la hora en que se ejecuta el comando. | 0-59 |
| Hora | La hora del día en formato de 24 horas. | 0-23 |
| Día del mes | La fecha específica del mes. | 1-31 |
| Mes | El mes del año. | 1-12 o JAN-DEC |
| Día de la semana | El día de la semana. | 0-6, donde domingo = 0 (o 7 en algunos sistemas) |
¡Importante! Ten cuidado al programar trabajos a través de múltiples servidores en diferentes zonas horarias. Comprueba siempre la hora local de cada servidor con el comando date para confirmar que tu configuración es correcta.
Los operadores Crontab te permiten definir intervalos y patrones complejos dentro de los campos de tiempo. Cronie y su predecesor, Vixie cron, admiten ocho operadores.
Estas implementaciones sirven como herramientas cron por defecto en la mayoría de las distribuciones de Linux, incluyendo Ubuntu, Debian, RHEL, CentOS y Fedora:
Estos operadores no son compatibles con el cron estándar de Linux. Sólo funcionan en programadores basados en Java, como Quartz y Spring Boot, o en servicios en la nube como AWS EventBridge:
La mayoría de las implementaciones de cron permiten combinar rangos con valores de paso. Por ejemplo, 1-20/2 ejecuta un trabajo cada dos minutos durante los primeros 20 minutos.
Los siguientes ejemplos muestran cómo aplicar la sintaxis de crontab a tareas del mundo real.
| Sintaxis de cron | Propósito | Explicación |
| 0 0 * * 0 /root/backup.sh | Copia de seguridad semanal | Ejecuta el script de copia de seguridad cada domingo a medianoche. |
| 0 * * * 1 /root/clearcache.sh | Mantenimiento del servidor | Limpia la caché cada hora, pero sólo los lunes. |
| 0 6,18 * * * /root/db-dump.sh | Instantánea de la base de datos | Vuelca la base de datos dos veces al día, a las 6 de la mañana y a las 6 de la tarde. |
| */10 * * * * /scripts/monitor.sh | Monitorización del tiempo de actividad | Ejecuta un script de monitorización cada 10 minutos. |
| 0 0 1,15 * * /scripts/payroll.php | Tarea bimensual | Ejecuta un script de nómina los días 1 y 15 de cada mes a medianoche. |
| 30 2 * * * /usr/bin/apt update | Actualización del sistema | Comprueba las actualizaciones de paquetes diariamente a las 2:30 AM, que suele ser una hora de poco tráfico. |
| * * * /scripts/s1.sh; /scripts/s2.sh | Tareas múltiples | Ejecuta varios comandos en una sola tarea cron separándolos con un punto y coma. |
| 0 8 1-7 * * [ “$(fecha ‘+\%u’)” = “1” ] && /scripts/report.sh | Informe mensual | Genera un informe a las 8 AM los días 1-7 del mes, pero sólo ejecuta el script cuando es lunes. |
Las cadenas especiales son atajos que comienzan con @ y reemplazan la sintaxis de cinco campos. Mejoran la legibilidad de las programaciones comunes y reducen el riesgo de errores de sintaxis.
Estos son algunos ejemplos de tareas cron que utilizan cadenas especiales:
@daily /home/user/scripts/daily-cleanup.sh @reboot /usr/local/bin/start-my-app.sh @hourly /var/www/html/monitor.php
¡Importante! La directiva @reboot se ejecuta cuando se inicia el daemon cron, no necesariamente cuando se inicia el sistema. Si detienes y reinicias el servicio cron sin reiniciar el sistema, las tareas @reboot vuelven a ejecutarse.
Los administradores del sistema controlan quién puede programar un cronjob mediante dos archivos en el directorio /etc/: cron.allow y cron.deny.
Si no existe ninguno de los dos archivos, el comportamiento predeterminado depende de la distribución:
Consulta siempre la documentación de tu distribución o prueba el acceso a cron con un usuario no root.
Por ejemplo, para permitir que sólo un administrador de base de datos (dbadmin) programe tareas, crea un archivo cron.allow y añade dbadmin al mismo. Esta configuración impide que otros usuarios ejecuten tareas en segundo plano no autorizadas que consumen recursos del sistema.
Para configurar una tarea cron, abre el terminal de tu máquina, confirma que cron está instalado, crea o edita un archivo crontab con crontab -e y observa las tareas programadas con crontab -l.
Algunos trabajos pueden requerir privilegios elevados o de root, o puede que necesites colocar scripts en directorios del sistema para tareas recurrentes.
Para gestionar las tareas cron, accede a la línea de comandos de tu servidor. Si utilizas un servidor remoto o VPS, conéctate a través de SSH con un cliente como PuTTY en Windows o Terminal en macOS o Linux.
Alternativamente, los usuarios del VPS de Hostinger pueden utilizar la función de terminal del navegador disponible en el panel de control VPS de hPanel.


La mayoría de las distribuciones de Linux incluyen cron por defecto. Para confirmar que está instalado y en ejecución, comprueba el estado del servicio:
systemctl status cron

Si falta el servicio, instálalo con tu gestor de paquetes.
sudo apt update sudo apt install cron
sudo dnf install cronie sudo systemctl enable crond sudo systemctl start crond
La principal forma de programar tareas es con el comando crontab. Para crear un nuevo archivo crontab o editar uno existente, ejecuta:
crontab -e
Si tu sistema aún no tiene un archivo crontab para tu usuario, este comando crea uno automáticamente.
Si es la primera vez que ejecutas el comando, el sistema te pedirá que elijas un editor de texto, como nano o vim. nano suele ser más fácil para los principiantes.
Una vez abierto el archivo, añade tu tarea programada en una nueva línea.

Para un desglose detallado de la sintaxis de cron, consulta nuestra guía sobre cómo escribir comandos crontab.
Antes de programar una tarea cron, prueba tu script manualmente para confirmar que funciona. Ejecuta el script directamente a través de SSH, por ejemplo ./backup.sh. Si no se ejecuta manualmente, tampoco lo hará a través de cron.
Para ver los cron jobs programados para tu cuenta de usuario sin editarlas, utiliza el indicador de lista:
crontab -l

Para ver los cron jobs de un usuario específico, ejecuta el siguiente comando y sustituye el nombre de usuario por el nombre de cuenta correspondiente. Ten en cuenta que esto requiere privilegios de root o elevados.
sudo crontab -u nombredeusuario -l
Algunos comandos, como las actualizaciones del sistema o los cambios en los archivos de configuración de todo el sistema, requieren privilegios de root. La forma más sencilla de programar estas tareas es añadirlas al crontab del usuario root:
sudo crontab -e
Cualquier comando en el crontab de root se ejecuta con privilegios de root y no requiere configuración adicional.
¡Importante! Evita ejecutar tareas como root a menos que sea necesario. Si un script sólo necesita acceso a archivos o directorios específicos, considera ajustar la propiedad de los archivos con el comando chown o utilizar una cuenta de servicio dedicada en su lugar.
Para los scripts de mantenimiento general que no necesitan ejecutarse en un minuto específico, puedes colocarlos en directorios predefinidos del sistema.
El sistema ejecuta automáticamente los scripts que se encuentran en estas ubicaciones:
Para ejecutarse correctamente, los scripts de estos directorios deben tener permisos de ejecución y seguir las reglas de nomenclatura de las partes de ejecución:
Para eliminar todas las tareas cron para el usuario actual, utiliza la bandera remove:
crontab -r
Dado que este comando elimina todas las entradas al instante, es más seguro combinarlo con el indicador interactivo (-i). Esta opción pide confirmación antes de eliminar todas las tareas programadas:
crontab -ri

¡Importante! La opción -i sólo funciona cuando se utiliza con -r. Ejecutar crontab -i por sí solo no tiene ningún efecto.
Los cron jobs automatizan tareas recurrentes combinando el daemon cron (que se ejecuta continuamente), el archivo crontab (que establece la programación) y el comando que realiza el trabajo. Esta automatización es esencial para una gestión eficaz del sistema y para realizar tareas rutinarias sin intervención manual.
Sin embargo, las tareas cron sólo son tan potentes como los scripts que ejecutan. El daemon cron ejecuta comandos en momentos determinados, pero el script realiza el trabajo real. Y si el script contiene errores, la tarea fallará aunque el trabajo cron se ejecute correctamente.
Aprender a escribir scripts Bash eficientes te permite automatizar tareas complejas y valiosas mediante cron. Echa un vistazo a nuestro tutorial de scripts Bash para empezar.
Todo el contenido de los tutoriales en este sitio web está sujeto a los rigurosos estándares y valores editoriales de Hostinger.