Si alguna vez has deseado que tu computadora hiciera ciertas tareas por ti, automáticamente y sin que tengas que intervenir, entonces los crons son tu mejor aliado. En el mundo de Linux, los crons son como ese asistente personal que siempre está pendiente de tus tareas repetitivas, ejecutándolas en el momento exacto que tú le indicas.
Suena bien, ¿verdad? Vamos a profundizar en qué son, para qué sirven y, lo más importante, cómo configurarlos.
¿Qué es un Cron?
Un cron es una utilidad en sistemas Unix y Linux que permite programar la ejecución de comandos o scripts en intervalos de tiempo específicos. Estos intervalos pueden ser minutos, horas, días, meses o incluso días de la semana. Básicamente, es un planificador de tareas que corre en segundo plano y se asegura de que todo funcione como un reloj suizo.
El término «cron» proviene de la palabra griega «chronos», que significa tiempo. Y es que, en esencia, los crons son maestros del tiempo: saben exactamente cuándo y cómo ejecutar las tareas que les asignas.

¿Para qué se utilizan los Crons?
Los crons son increíblemente versátiles y se utilizan en una amplia variedad de escenarios. Aquí te dejo algunos ejemplos cotidianos para que entiendas su potencial:
- Backups automáticos: Imagina que tienes un servidor con información crítica. ¿No sería genial que cada noche, a las 2:00 a.m., se hiciera una copia de seguridad automáticamente? Con un cron, puedes programar esta tarea y olvidarte de hacerla manualmente.
- Actualizaciones periódicas: ¿Te molesta tener que actualizar tus paquetes de software cada semana? Configura un cron para que lo haga por ti cada domingo a las 3:00 p.m.
- Envío de correos electrónicos: Si tienes un blog o un negocio, puedes usar crons para enviar correos automáticos a tus suscriptores con novedades o promociones.
- Limpieza de archivos temporales: ¿Tu sistema se llena de archivos temporales que no necesitas? Programa un cron para que los elimine cada mes y mantenga tu sistema limpio.
- Monitoreo de servidores: Puedes usar crons para ejecutar scripts que verifiquen el estado de tu servidor y te envíen alertas si algo no está funcionando correctamente.
¿Cómo funciona un Cron?
Los crons se gestionan a través de un archivo llamado crontab (cron table). Este archivo contiene las tareas programadas y el momento en que deben ejecutarse. Cada línea en el crontab representa una tarea y sigue un formato específico:
* * * * * comando_a_ejecutar
Los asteriscos representan, en orden:
- Minuto (0-59)
- Hora (0-23)
- Día del mes (1-31)
- Mes (1-12)
- Día de la semana (0-7, donde 0 y 7 son domingo)
Por ejemplo, si quieres ejecutar un script de backup todos los días a las 3:00 a.m., tu crontab se vería así:
0 3 * * * /ruta/al/script_de_backup.sh
¿Cómo configurar un Cron? (Guía paso a paso)
Es hora de poner el ejemplo a la práctica. Si es tu primera vez configurando un cron, no te preocupes. Es fácil de crear y configurar uno desde cero:
Paso 1: Abre tu terminal
En Linux, todo se hace desde la terminal. Si no estás familiarizado, puedes revisar la guía para principiantes para dominar la línea de comandos. Simplemente abre la aplicación «Terminal» en tu sistema.

Paso 2: Edita el archivo crontab
Para agregar una tarea programada, debes editar el archivo crontab
. Escribe el siguiente comando en la terminal:
crontab -e
Esto abrirá un editor de texto donde podrás agregar tus tareas programadas. Si es la primera vez que lo usas, es posible que te pregunte qué editor prefieres (nano, vim, etc.). Si no sabes cuál elegir, selecciona nano, que es más sencillo.
Paso 3: Agrega una tarea
Recuerda que en el archivo crontab, cada línea representa una tarea. Supongamos que quieres ejecutar un script llamado backup.sh
todos los días a las 3:00 a.m. Agrega la siguiente línea al final del archivo:
0 3 * * * /ruta/al/backup.sh
0
indica el minuto 0 (es decir, justo a la hora en punto).3
indica las 3:00 a.m.- Los asteriscos (
*
) significan «cada día, cada mes, cada día de la semana».
Paso 4: Guarda y cierra el archivo
Si estás usando nano, guarda el archivo presionando CTRL + O
y luego cierra el editor con CTRL + X
.
Paso 5: Verifica que la tarea se haya agregado
Para asegurarte de que la tarea se haya agregado correctamente, puedes listar las tareas programadas con el siguiente comando:
crontab -l
Esto mostrará todas las tareas que has configurado. Si ves la línea que agregaste, ¡felicidades! Has configurado tu primer cron.
Ejemplos prácticos de uso de Crons
- Recordatorios diarios: ¿Eres de los que olvida tomar agua? Crea un cron que te envíe un mensaje cada hora recordándote que debes hidratarte.
0 * * * * echo "¡Es hora de tomar agua!" | mail -s "Recordatorio" tu@email.com
- Apagar el equipo por la noche: Si trabajas desde casa y a veces te olvidas de apagar la computadora, programa un cron para que lo haga automáticamente a las 10:00 p.m.
0 22 * * * /sbin/shutdown -h now
- Sincronizar archivos con la nube: Si usas servicios como Dropbox o Google Drive, puedes programar un cron para que sincronice tus archivos cada 6 horas.
0 */6 * * * /ruta/al/script_de_sincronizacion.sh
- Generar reportes semanales: Si tienes un negocio, puedes usar crons para generar reportes de ventas cada lunes a las 8:00 a.m.
0 8 * * 1 /ruta/al/script_de_reportes.sh
- Limpiar la papelera de reciclaje: Programa un cron para que vacíe la papelera de reciclaje cada domingo a medianoche.
0 0 * * 0 rm -rf /home/usuario/.local/share/Trash/*
¿Cómo soluciono problemas comunes con cron jobs?
Cuando un cron job no funciona como esperabas, puede ser frustrante. Sin embargo, la mayoría de los problemas tienen soluciones claras. Te comparto la siguiente guía para solucionar problemas comunes con cron jobs:
1. Verifica que el demonio cron
esté funcionando
Asegúrate de que el servicio cron esté activo. Usa el siguiente comando:
systemctl status cron
Si no está corriendo, puedes iniciarlo con:
sudo systemctl start cron
Si estás en Windows usando WSL, en vez de utilizar systemctl usa:
service cron status
E iniciarlo con:
service cron start
2. Asegúrate de que el cron job esté configurado correctamente
Lista tus trabajos configurados con:
crontab -l
Verifica que la sintaxis sea correcta (por ejemplo, los campos de tiempo y la ruta del comando). Un error en la configuración hará que el cron job no se ejecute.
3. Verifica los permisos de los scripts
Si estás ejecutando un script personalizado, asegúrate de que tiene permisos de ejecución:
chmod +x /ruta/al/script.sh
4. Especifica rutas absolutas
Cron no usa las mismas variables de entorno que tu sesión de usuario. Asegúrate de usar rutas completas para los comandos y archivos en tus cron jobs.
Ejemplo: Si tu script llama a python
, utiliza la ruta completa:
/usr/bin/python3 /ruta/al/script.py
5. Revisa los logs de cron
Los logs contienen información útil sobre si los cron jobs se ejecutaron y si hubo errores. Busca entradas relacionadas con cron en el log del sistema:
grep CRON /var/log/syslog
(En algunas distribuciones, puede estar en un archivo diferente, como /var/log/cron
).
6. Prueba manualmente tu comando o script
Ejecútalo desde la terminal para confirmar que funciona sin errores:
/ruta/al/script.sh
Si tu script depende de variables de entorno específicas, asegúrate de incluirlas explícitamente en el script, ya que cron no las hereda de tu sesión.
7. Redirige la salida para depuración
Si no estás seguro de qué está haciendo tu cron job, redirige su salida estándar y de error a un archivo de log:
* * * * * /ruta/al/script.sh >> /ruta/al/log_cron.txt 2>&1
8. Revisa el usuario que ejecuta el cron job
Si configuraste un trabajo en el crontab del usuario, se ejecutará con los permisos de dicho usuario. Asegúrate de que este tenga acceso a los archivos y comandos requeridos. Si necesitas permisos de superusuario, usa sudo crontab -e
para configurarlo.
9. Problemas con variables de entorno
Cron utiliza un entorno mínimo. Si tu script depende de variables como PATH
, inclúyelas explícitamente al inicio del archivo:
PATH=/usr/local/bin:/usr/bin:/bin
10. Errores en la programación del tiempo
Asegúrate de que los tiempos programados sean correctos. Si no estás seguro, usa una herramienta en línea como Crontab Guru para verificar la configuración de tu horario.
Ejemplo práctico:
Si tienes un trabajo cron que no se ejecuta, podrías depurarlo de esta manera:
- Redirige la salida a un log:
* * * * /ruta/script.sh >> /ruta/log_cron.txt 2>&1
- Comprueba los permisos del script:
- c
hmod +x /ruta/script.sh
- c
- Verifica que cron esté corriendo:
systemctl status cron
- Asegúrate de usar rutas absolutas dentro del script.
Conclusión
Los crons son una herramienta que puede ahorrarte tiempo y esfuerzo en tareas repetitivas. Ya sea que estés gestionando un servidor, administrando un blog o simplemente quieras automatizar algunas tareas en tu computadora personal. Los crons son tu mejor aliado a la hora de automatizar. Con un poco de práctica, podrás dominar esta herramienta y hacer que tu sistema trabaje para ti.
5 retos para poner en práctica lo aprendido
Te invito a realizar estos 5 retos para que pongas en práctica el aprendizaje, o crees ideas para desarrollar tus propios crons:
- Crea un cron para hacer un backup diario: Configura un cron que copie una carpeta importante a una ubicación segura todos los días a las 11:00 p.m.
- Programa un recordatorio semanal: Usa un cron para que te envíe un correo electrónico cada viernes con una lista de tareas pendientes.
- Automatiza la actualización de tu sistema: Configura un cron para que actualice los paquetes de tu sistema cada domingo a las 6:00 a.m.
- Limpia archivos temporales: Crea un cron que elimine archivos temporales de una carpeta específica cada mes.
- Monitorea el uso de disco: Programa un cron que te envíe un correo si el uso de disco supera el 80%.
¿Te animas a probar estos retos? 🚀
Sigueme en mis redes sociales para más contenido