Lo que vas a aprender en este TP
- Escribir un script con set -euo pipefail, trap y getopts
- Controlar la calidad con ShellCheck
- Programar y restaurar
Introducción #
Lo que vas a aprender en esta sección
- Escribir un script con set -euo pipefail, trap y getopts
- Controlar la calidad con ShellCheck
- Programar y restaurar
Contexto. Nadie respalda la configuración del servidor. Escribes un script fiable, que se puede volver a ejecutar sin riesgo y que informa de sus fallos.
Requisitos previos: una máquina virtual Ubuntu 24.04 desechable (Multipass, Vagrant o nube) con una cuenta sudo · Duración estimada: 50 min
Una copia diaria de /etc verificada y restaurable.Puesta en práctica #
Pasos guiados, con su corrección.
1. Escribir el script
¿Por qué? El modo estricto, la limpieza automática, el bloqueo y las opciones hacen que el script sea seguro de relanzar y programar.
Crea/usr/local/bin/backup-etc.sh: archivo verificado de/etc, opciones-n(simulación) y-r(retención en días), bloqueoflock, registro con fecha y borrado de archivos antiguos.2. Comprobar con ShellCheck
¿Por qué? ShellCheck detecta comillas que faltan, variables no definidas y trampas clásicas antes de que rompan producción.
Instala ShellCheck, analiza el script y corrige los avisos. Comprueba la sintaxis conbash -n.3. Probar los casos normales y de error
¿Por qué? Un script también se prueba en sus fallos: el código de salida es lo que verán systemd o la CI.
Lanza una simulación, una copia real y provoca tres errores (sin root, retención inválida, dos ejecuciones simultáneas) mostrando el código de salida.4. Programar con un timer
¿Por qué? El timer registra cada ejecución y marca el servicio como fallido si el script devuelve un error.
Creabackup-etc.serviceybackup-etc.timer(cada día a las 2:30, con recuperación), lanza una ejecución manual y consulta el journal.5. Restaurar un archivo
¿Por qué? Una copia solo vale si se sabe restaurar.
Modifica/etc/motd, restaura la versión respaldada desde el último archivo a un directorio temporal y compara antes de volver a colocarla.
Nivel de dificultad : ●●●○○ (3/5)
Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión
Artículos recomendados
Scripts Bash pour l'administrateur : écrire des scripts robustes
Automatiser l'administration Linux avec Bash : variables et guillemets, conditions, boucles, fonc...
Paquets, services systemd, journaux et tâches planifiées
Installer et mettre à jour des logiciels avec apt et dnf, piloter les services avec systemctl, éc...
Buenas Prácticas de Kubernetes
Mejores prácticas para asegurar y optimizar los despliegues de Kubernetes.