Documentación
Inicio rápido + descripción de cada función y de cada dispositivo (en constante actualización)
Tareas programadas (Cron)
Este documento explica cómo gestionar las tareas programadas en el servidor de destino.
Primero, entender: qué es Cron
Cron es la herramienta de «programación por tiempo» que viene incluida en Linux. Puedes hacer que «haga una copia de seguridad de la base de datos automáticamente todos los días a las 3 de la madrugada», «limpie los registros una vez por hora» o «reinicie un servicio cada lunes»: se ejecuta solo al llegar la hora, sin que nadie esté pendiente.
Descripción de la función
Consultar, añadir y eliminar tareas programadas Cron en el servidor de destino.
Casos de uso
- Copias de seguridad de bases de datos y limpieza de registros a intervalos regulares
- Ejecutar scripts de monitorización a intervalos regulares
- Reiniciar servicios y actualizar certificados a intervalos regulares
Cómo se usa
Entra en «panel de Gestión del sistema → Tareas programadas» de un servidor y verás todas las tareas Cron actuales de ese servidor.
Añadir una tarea
Rellena la expresión Cron y el comando que se debe ejecutar:
| Campo | Descripción |
|---|---|
| Expresión de tiempo | de 5 segmentos, como 0 3 * * * (todos los días a las 3 de la madrugada) |
| Comando | el comando de shell que se debe ejecutar |
Formato de la expresión Cron (minuto hora día mes día-de-la-semana):
* * * * * comando │ │ │ │ │ │ │ │ │ └── día de la semana (0-7, 0/7=domingo) │ │ │ └──── mes (1-12) │ │ └────── día (1-31) │ └──────── hora (0-23) └────────── minuto (0-59)
Ejemplos habituales:
| Expresión | Significado |
|---|---|
*/5 * * * * | cada 5 minutos |
0 * * * * | cada hora |
0 3 * * * | todos los días a las 3 de la madrugada |
0 3 * * 1 | los lunes a las 3 de la madrugada |
0 3 1 * * | el día 1 de cada mes a las 3 de la madrugada |
0 3 * * 0 | los domingos a las 3 de la madrugada |
30 2 * * * | todos los días a las 2:30 de la madrugada |
Ejemplos de comandos útiles:
# Copia de seguridad de la base de datos todos los días a las 3 (ejemplo) 0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<contraseña>' nombre-de-la-base > /opt/backup/db-$(date +\%F).sql # Limpieza de archivos temporales cada 6 horas 0 */6 * * * find /tmp -type f -mtime +7 -delete # Reiniciar un servicio los lunes a las 4 de la madrugada 0 4 * * 1 systemctl restart my-app
Advertencias
1. Las tareas Cron se ejecutan como el usuario actual del servidor de destino; asegúrate de que ese usuario tiene permiso para ejecutar el comando.
2. Se recomienda escribir los comandos con rutas absolutas (el entorno de Cron tiene pocas variables y es posible que con rutas relativas no encuentre el programa).
3. Si usas % en el comando, escápalo como \% (Cron interpreta % como carácter especial).
4. Al eliminar una tarea Cron, el cambio surte efecto de inmediato.
5. Modificar el Cron a nivel de sistema (/etc/crontab) puede requerir operar fuera del panel; el panel gestiona por defecto el crontab -l del usuario actual.