Tareas programadas con Cron
Automatice tareas recurrentes del servidor mediante la creación y gestión de trabajos de cron para garantizar que los scripts y comandos se ejecuten en los intervalos especificados.
Tareas programadas con Cron es una lección gratuita de Linux Server Deployment & SSH Mastery en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Linux Server Deployment & SSH Mastery, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Linux Server Deployment & SSH Mastery incluye 4 lecciones en total.
¿Por qué automatizar las tareas del servidor?
Las tareas manuales en un servidor pueden ser repetitivas y propensas a errores humanos. La automatización le ayuda a ahorrar tiempo y garantiza que las tareas se realicen de forma coherente.
Imagine que necesita hacer una copia de seguridad de una base de datos cada noche o limpiar los archivos de registro antiguos cada semana. Hacerlo manualmente es tedioso y fácil de olvidar.
Aquí es donde resultan útiles las herramientas de programación de tareas. Permiten que el servidor realice tareas automáticamente en momentos o intervalos específicos, para que pueda dedicar su tiempo a trabajos más importantes.
Conozca Cron: el programador de tareas de su servidor
Cron es una herramienta fundamental de Linux para programar tareas. Es como un asistente personal para su servidor: garantiza que los comandos o scripts se ejecuten automáticamente en segundo plano en momentos predeterminados.
Estas tareas programadas se denominan trabajos de cron. Cada usuario de un sistema puede tener su propia lista de trabajos de cron, almacenada en un archivo especial llamado crontab.
Edición de su crontab
Para gestionar sus trabajos de cron personales, utilice el comando crontab.
- Para editar su archivo crontab, escriba:
crontab -e - Para mostrar sus trabajos de cron actuales, escriba:
crontab -l - Para eliminar todos sus trabajos de cron, escriba:
crontab -r(¡utilícelo con precaución!)
Al ejecutar crontab -e, su crontab se abrirá en el editor de texto predeterminado, normalmente nano o vi.
Sintaxis de crontab: los campos de tiempo
Cada línea de su crontab representa un único trabajo de cron y sigue un patrón específico. Contiene cinco campos de tiempo, seguidos del comando que se ejecutará.
El formato es:
minute hour day_of_month month day_of_week command- Minuto: 0-59
- Hora: 0-23 (0 es medianoche)
- Día del mes: 1-31
- Mes: 1-12 (o Jan-Dec)
- Día de la semana: 0-7 (0 o 7 es domingo, 1 es lunes)
Sintaxis de crontab: asteriscos y rangos
No siempre es necesario indicar números exactos. Cron ofrece caracteres especiales para proporcionar flexibilidad:
*(asterisco): Coincide con «cada» valor posible de ese campo. Por ejemplo,*en el campo de minutos significa «cada minuto».-(guion): Especifica un rango. Por ejemplo,9-17en el campo de horas significa «de las 9 a las 17».,(coma): Especifica una lista de valores. Por ejemplo,Mon,Wed,Frio1,3,5para los días de la semana./(barra): Especifica intervalos. Por ejemplo,*/5en el campo de minutos significa «cada 5 minutos».
Sintaxis de crontab: ejemplos prácticos
Veamos algunos ejemplos habituales para consolidar sus conocimientos:
* * * * * /path/to/script.sh
Se ejecuta cada minuto.0 3 * * * /usr/bin/backup.sh
Se ejecuta todos los días a las 3:00.0 9-17 * * 1-5 /usr/local/bin/check_service.py
Se ejecuta cada hora de 9:00 a 17:00, de lunes a viernes.*/15 * * * * echo "Hello, CoddyKit!"
Se ejecuta cada 15 minutos.
Recuerde reemplazar /path/to/script.sh por la ruta de su comando o script real.
Cadenas especiales de crontab
Para necesidades de programación muy habituales, Cron proporciona cadenas especiales que son más fáciles de leer que la sintaxis de cinco campos:
@reboot: Se ejecuta una vez al iniciar el sistema.@hourly: Se ejecuta una vez cada hora, al comienzo de la hora.@daily: Se ejecuta una vez al día, a medianoche.@weekly: Se ejecuta una vez a la semana, a medianoche del domingo.@monthly: Se ejecuta una vez al mes, a medianoche del primer día del mes.@yearly(o@annually): Se ejecuta una vez al año, a medianoche del 1 de enero.
Son opciones excelentes para tareas sencillas y recurrentes.
Variables de entorno y rutas
Cuando cron ejecuta un trabajo, utiliza un conjunto muy reducido de variables de entorno. Esto suele provocar que los comandos que funcionan en su terminal fallen en cron.
Para evitar problemas:
- Utilice siempre rutas absolutas para los comandos y scripts, por ejemplo,
/usr/bin/phpen lugar dephp. - Puede definir una variable
PATHdirectamente en su archivo crontab, por ejemplo,PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - Como alternativa, establezca las variables de entorno directamente en su script.
Gestión de la salida y los registros
De forma predeterminada, cron intenta enviar por correo electrónico cualquier salida (stdout y stderr) de un trabajo de cron al usuario propietario del crontab. Si no tiene configurado un sistema de correo electrónico, esta salida podría perderse o llenar los archivos de registro.
La práctica recomendada es redirigir la salida explícitamente:
- Para descartar toda la salida:
command > /dev/null 2>&1 - Para añadir la salida a un archivo de registro:
command >> /var/log/myjob.log 2>&1
La parte 2>&1 redirige el error estándar (2) a la misma ubicación que la salida estándar (1).
Cron de todo el sistema frente a crontabs de usuario
Nos hemos centrado en los crontabs de usuario personales, gestionados con crontab -e. Son ideales para las tareas de cada usuario.
Para las tareas de todo el sistema, los administradores suelen utilizar:
/etc/crontab: El crontab principal del sistema, que permite ejecutar tareas como usuarios específicos./etc/cron.d/: Directorio para archivos cron independientes, que suelen instalar las aplicaciones./etc/cron.hourly/,/etc/cron.daily/, etc.: Directorios donde se colocan scripts para que cron del sistema los ejecute en esos intervalos específicos.
Estas opciones del sistema ofrecen un mayor control para la automatización de todo el servidor.
Compruebe sus conocimientos sobre Cron
Ha aprendido los conceptos básicos de la sintaxis de crontab. Veamos si puede descifrar este trabajo de cron.
Resumen: automatice con Cron
Ya domina los conceptos esenciales de la programación de tareas con Cron.
Esto es lo que hemos visto:
- Qué es Cron: Un programador de tareas basado en el tiempo.
- Crontab: Su archivo personal para definir trabajos de cron.
- Sintaxis: Comprender los 5 campos de tiempo y los caracteres especiales (
*,-,,,/). - Cadenas especiales: Atajos como
@hourlyy@reboot. - Prácticas recomendadas: Utilizar rutas absolutas y gestionar la salida.
Con Cron puede automatizar tareas rutinarias y garantizar que su servidor funcione de forma fluida y eficiente.
Preguntas frecuentes
¿La lección «Tareas programadas con Cron» es gratis?
Sí — el texto completo de «Tareas programadas con Cron» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Linux Server Deployment & SSH Mastery, actualiza a CoddyKit PRO. El curso de Linux Server Deployment & SSH Mastery incluye 4 lecciones en total.
¿Qué aprenderé en «Tareas programadas con Cron»?
Automatice tareas recurrentes del servidor mediante la creación y gestión de trabajos de cron para garantizar que los scripts y comandos se ejecuten en los intervalos especificados. Practicas Linux Server Deployment & SSH Mastery con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Linux Server Deployment & SSH Mastery?
No se requiere experiencia previa. Linux Server Deployment & SSH Mastery en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Tareas programadas con Cron»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Linux Server Deployment & SSH Mastery?
Sí. Cada lección de Linux Server Deployment & SSH Mastery incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Gestión de usuarios y grupos
- Supervisión de procesos del sistema
- Tareas programadas con Cron
- Gestión de servicios del sistema con systemd