Feb 09, 2025
Diego B.
5min de lectura
La automatización es uno de los aspectos clave de cualquier sistema, ya sea un servidor físico o un servidor privado virtual (VPS). Si la automatización se configura correctamente, puedes ahorrar cientos de horas preciosas para el usuario y hacer que el flujo de trabajo general sea mucho más eficiente. Una de las herramientas clave para programar tareas es cron.
En este tutorial, vamos a cubrir la sintaxis Crontab, veremos un resumen de las diferencias entre cron job, cron y crontab, y te mostraremos algunos casos de uso útiles cron jobs para un sistema operativo basado en Linux.

En cuanto a los cron jobs, cabe destacar tres términos:
Cron daemon (crond) o simplemente cron es un ejecutable que permite a los usuarios realizar tareas y ejecutarlas automáticamente a una hora determinada.
Cron job es cualquier tarea que un usuario programe utilizando cron.
La tabla cron o Crontab es un archivo que contiene todas las programaciones de las tareas cron que un usuario desea ejecutar regularmente. Los comandos se escriben uno por línea y ordenan al cron daemon que ejecute una tarea a una hora determinada.
Para que el cron daemon comprenda correctamente las instrucciones, debe utilizarse la sintaxis crontab correcta. La sintaxis de crontab consta de cinco campos. Cada uno de ellos puede rellenarse con cualquiera de los valores que se muestran en la siguiente tabla:
| Campo | Valores posibles |
| Minuto | 0-59 |
| Hora | 0-23 |
| Día del mes | 1-31 |
| Mes | 1-12 |
| Día de la semana | 0-6. 0 representa el domingo. En algunos sistemas, el valor 7 representa el domingo. |
| Comando | Orden a ejecutar |
Aparte de los valores de crontab posibles, es necesario memorizar algunos caracteres especiales:
| Símbolo | Significado | Ejemplo |
| * (asterisco) | Seleccionar todos los valores posibles de un campo | Coloca * en el campo hora para ejecutar la tarea cada hora |
| , (coma) | Se utiliza una coma para separar varios valores | 0,3,5 en el campo día de la semana hará que la tarea se ejecute el domingo y el miércoles |
| – (guión) | Permite fijar un intervalo de valores | 10-15 en el campo día del mes ejecutará la tarea desde el día 10 al 15 del mes |
| / (separador) | Se utiliza un separador para dividir los valores | */10 en el campo hora hará que la tarea se ejecute cada 10 horas |
| L | Se utiliza en los campos de día del mes o día de la semana | 1L en el campo día de la semana ejecutará la tarea el último lunes de un mes determinado |
| W | W se utiliza para determinar el día de la semana más próximo | 0W en el campo día del mes hará que la tarea se ejecute el domingo más cercano de un mes determinado |
| # (numeral) | Se utiliza para determinar el día de la semana | 2#3 en el campo día del mes hará que la tarea se ejecute el tercer martes del mes |
| ? (signo de interrogación) | Se utiliza en los campos de día del mes y día de la semana | ? en el campo del día del mes se leerá como sin valor específico |
¡Importante! Ten en cuenta que todos los campos deben rellenarse al crear una tarea cron. Si no deseas especificar un campo, rellénalo con el símbolo * (asterisco).
Sólo se utilizan unos pocos comandos cron en la línea de comandos, lo que facilita la creación, eliminación y gestión de entradas cron:

En primer lugar, utiliza el comando crontab para crear tu primera entrada crontab:
crontab -e
Te pedirá que elijas un editor de texto. Te recomendamos usar nano, la primera opción en nuestro ejemplo:

Después, serás dirigido al archivo crontab. Para añadir nuevas entradas, simplemente elige una nueva línea y continúa con el cronjob.
¡Importante! Ten en cuenta que crontab utiliza la fecha y hora actuales del sistema, lo que significa que la zona horaria se comparte con el sistema raíz.
Una de las formas más sencillas de probar cron es programar una tarea para una hora determinada. Por ejemplo, la siguiente tarea cron ejecutará nuestro script .sh a la hora especificada, que es el 15 de agosto a las 15:30.
30 08 10 06 * cat /helloworld.sh
Dado que todas las tareas cron se almacenan en un archivo crontab, puedes ver las que ya se están ejecutando. Para ello, utiliza el siguiente comando para mostrar el contenido de tus archivos crontab:
crontab -l

Para modificar entradas crontab ya existentes, utiliza este comando:
crontab -e
No supone ningún esfuerzo programar tareas para que se ejecuten cada minuto. En el siguiente ejemplo, ordenaremos la ejecución del comando cat para que se ejecute periódicamente:
* * * * * cat /home/helloworld.sh

Para programar una tarea en segundo plano que se ejecute todos los días, puedes utilizar el comando cron @daily:
@daily cat /home/helloworld.sh
Ten en cuenta que se va a ejecutar el script todos los días a las 12 de la mañana.
Es posible programar un trabajo para un intervalo de tiempo determinado. Por ejemplo, todos los días de la semana, incluidos los fines de semana, de 8.00 a 17.00. El resultado final sería el siguiente:
00 08-17 * * * cat /home/helloworld.sh
Aquí hay otro ejemplo del mismo cron, pero sólo los fines de semana:
00 08-17 * * 6-0 cat /home/helloworld.sh
Para programar un trabajo al principio de cada mes, puedes utilizar el operador @monthly:
@monthly cat /home/helloworld.sh
Ten en cuenta que esto ejecutará el trabajo a las 12am del primer día de cada mes. Del mismo modo, existe un operador @yearly que ejecutará el trabajo el primer día de cada año.
Los usuarios pueden programar una tarea cron para que se ejecute más de una vez, por ejemplo, cinco veces al día. En el siguiente ejemplo, configuraremos un trabajo para que se ejecute a las 12pm, 3pm, 5pm, 7pm y 9pm.
0 12,15,17,19,21 * * * cat /home/helloworld.sh
De forma similar a los operadores @daily, @monthly y @yearly, bash también viene con un comando @reboot. Los usuarios pueden utilizarlo para programar una tarea que se ejecutará cada vez que el sistema se reinicie:
@reboot cat /home/helloworld.sh
Dependiendo del sistema operativo, crontab estará ubicado en tres lugares diferentes:
Aparte de la funcionalidad actual, crontab también es capaz de realizar acciones adicionales como crear un registro de ejecución cron o desactivar las notificaciones por correo electrónico. Consulta las secciones siguientes para obtener más información.
La forma más sencilla de registrar todas las salidas de los trabajos cron es utilizar la siguiente lógica:
* * * * * cat /home/helloworld.sh >> /var/log/logs.log 2>&1
Este comando guardará todas las salidas de los trabajos cron en un archivo llamado logs.log
Dado que cron envía un correo electrónico al usuario después de cada trabajo, desactivar esta funcionalidad puede ser beneficioso para evitar el spam. Sólo tienes que añadir esta línea al final de tu trabajo cron:
>/dev/null 2>&1
Crontab permite a sus usuarios definir variables de entorno. Esto puede hacerse con el comando crontab -e antes mencionado. Al definir variables, consulta la lista siguiente:
Los cron jobs son una de las mejores formas de realizar tareas programadas para instancias virtuales y sistemas Linux físicos. Con los cron jobs, los usuarios pueden programar varias tareas para su sistema. Por ejemplo, realizar el mantenimiento del sistema en un día concreto o incluso programarlo para que se ejecute todos los días de la semana.
En este tutorial, hemos cubierto la mayoría de las operaciones de crontab. También hemos proporcionado algunos ejemplos prácticos que puedes utilizar al crear un crontab.
Si tienes alguna pregunta o sugerencia para usar cron, no dudes en dejarla en la sección de comentarios.
Todo el contenido tutorial en este sitio web está sujeto a los estándares y valores editoriales más rigurosos de Hostinger.