Cuando comencé a administrar servidores Linux, una de las primeras herramientas que aprendí a utilizar fue cron, junto con su comando asociado crontab. Estas utilidades me permitieron automatizar tareas repetitivas, como respaldos, actualizaciones y monitoreos, mejorando la eficiencia y reduciendo errores humanos. En este artículo, compartiré contigo cómo funcionan cron y crontab en Linux, su sintaxis, ejemplos prácticos y mejores prácticas basadas en mi experiencia.
¿Qué son cron y crontab en Linux?
Cron es un demonio en sistemas Unix y Linux que ejecuta tareas programadas en momentos específicos. Estas tareas se definen en archivos llamados crontabs, que especifican cuándo y qué comandos deben ejecutarse. Cada usuario puede tener su propio archivo crontab, y también existen crontabs a nivel del sistema para tareas globales.

Sintaxis de crontab
La sintaxis de una entrada en crontab consta de cinco campos de tiempo seguidos del comando a ejecutar:
* * * * * comando
- Minuto (0-59)
- Hora (0-23)
- Día del mes (1-31)
- Mes (1-12)
- Día de la semana (0-6, donde 0 es domingo)
Por ejemplo, para ejecutar un script todos los días a las 2:30 AM:
30 2 * * * /ruta/al/script.sh
Comandos de Cron y Crontab en Linux
Estas herramientas de Cron y Crontab en Linux utilizan una serie de comandos básicos que te enseñarán como utilizar y ver crontab y crons , como por ejemplo:
contrab archivo
: funciona para reemplazar el archivo contrab con uno nuevo.contrab -e
: edita la entrada del archivo contrab.contrab –l
: su función es obtener un listado con todas las tareas del archivo.contrab -r:
borra el archivo contrab de forma permanente.contrab -c dir
: indica dónde se almacenará el archivo. Para utilizar este comando, se requiere de ciertos permisos de ejecución.contrab -u usuarios
: funciona para gestionar el contrab de otros usuarios.
Además de estos comandos y otros, como crontab -h, Linux cuenta con una serie de cadenas de texto que vienen preconfiguradas para programar scripts automáticamente, siendo las más comunes:
@reboot
, el cual ejecuta el script una vez se inicie el equipo.@yearly
o@anually
, que funciona para ejecutar el script una vez al año.@monthly
ejecuta una vez al mes el script, el primer día de cada mes.@weekly
, el cual ejecuta el script una vez a la semana.@daily
, que funciona para ejecutar una vez al día el script.@midnight
, el cual ejecuta el script todas las noches a las 00:00 horas.@hourly
ejecuta el script durante el primer minuto de cada hora.
Ejemplos prácticos
- Ejecutar un script cada lunes a las 3 AM:
0 3 * * 1 /ruta/al/script.sh
- Ejecutar un comando cada 15 minutos:
*/15 * * * * /ruta/al/comando
- Ejecutar una tarea al reiniciar el sistema:
@reboot /ruta/al/script.sh
Buenas prácticas
- Redireccionar la salida de errores: Para evitar que los errores se envíen por correo, redirige la salida estándar y de errores:
* * * /ruta/al/script.sh > /dev/null 2>&1
- Usar rutas absolutas: Asegúrate de utilizar rutas completas para comandos y archivos, ya que el entorno de cron es limitado.
- Verificar permisos: Confirma que los scripts tengan permisos de ejecución y que el usuario tenga los privilegios necesarios.
Diferencias entre Cron y Crontab en Linux
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaPara entender las diferencias entre Cron y Crontab, creo que lo mejor es que definamos más detalladamente cada uno de ellos para que comprendas sus diferencias y distintos usos.
Cron
Cron (también llamado demonio cron) es un proceso en segundo plano de Linux que es ejecutado una vez se inicia el sistema operativo y que se encarga de comprobar la existencia de algún proceso, tarea o guiones a ejecutar en una hora determinada.
Cron se ejecutará cada minuto comprobando los ficheros
**crontab -e ubuntu
/var/spool/cron o /etc/crontab
Se debe tener en cuenta, que esta herramienta realiza sus funciones de acuerdo a la hora que tenga nuestro sistema operativo, por lo que será necesario asegurarnos de que esta sea la correcta. También es posible agregar comandos o ejecutar el script que realicemos con tareas a Cron, lo cual nos permitirá reducir tiempos y automatizar procesos. Cabe destacar, que las labores que deseamos que se ejecuten, deben ser escritas en un fichero Contrab.
Contrab
Por su lado, entre Cron y Crontab en Linux, Contrab es definido como un archivo de texto donde se almacenan las tareas programadas por Cron. Cada usuario tiene la posibilidad de programar tareas en Linux a través de su fichero Contrab, el cual crea una lista con los scripts a ejecutar por esta herramienta.
Contrab es utilizado también, para el cumplimiento de tareas como manejar copias de seguridad automatizadas, sincronizar archivos, eliminar archivos efímeros o temporales.
Herramientas para Cron
Con el objetivo de automatizar tareas en Linux y evitar errores, se han diseñado ciertas herramientas en línea de formato cron, como por ejemplo:
- Easycron: programador de tareas para llamar URL específicas por intervalos de tiempo o momentos determinados. Esta herramienta te permite administra trabajos cron en tu panel de usuario, programar las labores de acuerdo con la fecha y hora de tu sistema, ver registros en ejecución de cada tarea, e incluso recibir avisos vía mail acerca de la ejecución de trabajos cron.
- Cron Job Generator: permite programar secuencias de comandos para que se ejecuten en una hora determinada.
- Contrab Guru: editor rápido y sencillo para expresiones de programación cron. Brinda alertas instantáneas acerca de posibles errores o inconvenientes que se presenten.
Conclusión sobre crontab y cron en Linux
Dominar cron y crontab en Linux es esencial para automatizar tareas y mantener sistemas eficientes y seguros. Estas herramientas permiten programar tareas de mantenimiento, respaldos y monitoreos sin intervención manual, liberando tiempo y reduciendo errores.
Si deseas profundizar en la administración de sistemas Linux y adquirir habilidades avanzadas en ciberseguridad, te invitamos a explorar nuestro Curso Intensivo en DevOps y Cloud Computing. A través de una formación práctica y orientada al mundo real, te prepararemos para enfrentar los desafíos actuales en el ámbito de la seguridad informática. ¡Inscríbete ahora y lleva tu carrera al siguiente nivel!