Introducción
Eres el "Centinela de los Respaldos", el recién nombrado administrador de sistemas de una prometedora startup tecnológica. Recientemente, una pequeña subida de tensión provocó un fallo en el servidor, corrompiendo momentáneamente un archivo de registro no crítico. Aunque esta vez no se perdió información vital, ha sido una seria advertencia.
El CTO te ha encomendado personalmente una misión crítica: implementar una estrategia robusta de respaldo y recuperación para el servidor de aplicaciones principal de la empresa, y debes hacerlo hoy mismo. La integridad de los datos de usuario, las configuraciones de la aplicación y los registros vitales están ahora en tus manos.
Este es tu momento para destacar. Al crear, verificar y automatizar con éxito el proceso de respaldo, no solo salvaguardarás el activo más valioso de la empresa —sus datos—, sino que también demostrarás ser un guardián indispensable de su infraestructura digital. El sistema está en producción y el tiempo corre. Manos a la obra.
- Salta temporalmente el desafío y continúa con los laboratorios guiados posteriores en la ruta de aprendizaje de Linux.
- Consulta con Labby o revisa la solución.
Identificación de Datos Críticos para el Respaldo
Antes de crear una copia de seguridad, tu primera tarea es identificar qué datos son críticos. Un respaldo completo del sistema suele ser poco práctico. Para nuestro servidor de aplicaciones, los activos más importantes se encuentran en los directorios data, config y logs.
Para que nuestro proceso de respaldo sea limpio y manejable, crearemos un archivo que enumere todos los directorios que deseamos respaldar. Esta lista servirá como un manifiesto para nuestro script de respaldo.
Tareas
- Crea un archivo llamado
backup-list.txten el directorio~/project. - Este archivo debe contener las rutas relativas a los tres directorios críticos, con cada ruta en una línea nueva.
Requisitos
- El archivo debe llamarse exactamente
backup-list.txt. - El archivo debe estar ubicado en el directorio
~/project. - El archivo debe contener las siguientes tres entradas, cada una en su propia línea:
dataconfiglogs
Ejemplos
Después de crear el archivo backup-list.txt, tu directorio de proyecto debería contener el nuevo archivo de manifiesto junto con los directorios existentes:
~/project/
├── backup-list.txt
├── backups/
├── config/
├── data/
└── logs/
Al ejecutar cat backup-list.txt, deberías ver los tres directorios críticos listados:
data
config
logs
Consejos
- Puedes usar un editor de texto como
nanopara crear y editar el archivo. - Alternativamente, puedes usar el comando
echocon redirección de salida (>) para crear el archivo y (>>) para añadir contenido.
Creación de un Archivo de Respaldo del Sistema
Con la lista de directorios críticos lista, es hora de crear el archivo de respaldo. La herramienta estándar de Linux para este trabajo es tar (Tape Archive). Puede agrupar múltiples archivos y directorios en un solo archivo. También comprimiremos el archivo para ahorrar espacio usando gzip.
Tareas
- Usa el comando
tarpara crear un archivo de respaldo comprimido. - El archivo debe llamarse
system-backup.tar.gz. - El archivo debe colocarse en el directorio
~/project/backups/. - El contenido del archivo debe determinarse mediante el archivo
backup-list.txtque creaste en el paso anterior.
Requisitos
- El archivo final debe estar ubicado en
~/project/backups/system-backup.tar.gz. - Debes usar el comando
tar. - Debes usar la opción
-Tcontarpara leer la lista de archivos/directorios desdebackup-list.txt. - El archivo debe estar comprimido con
gzip(usa la opciónzentar).
Ejemplos
Después de crear el archivo de respaldo, tu directorio backups debería contener el nuevo archivo comprimido:
~/project/backups/
└── system-backup.tar.gz
Al ejecutar ls -lh ~/project/backups/, deberías ver el archivo de respaldo con su tamaño:
-rw-rw-r-- 1 labex labex 1.2K Sep 11 15:08 system-backup.tar.gz
Consejos
- Las opciones comunes para crear un archivo comprimido con
tarsonc(crear),z(comprimir con gzip),v(detallado, para ver el progreso) yf(especificar nombre de archivo). - La opción
-Tle indica atarque obtenga los nombres de los archivos a archivar desde el archivo que se indica a continuación, en lugar de la línea de comandos. - La estructura del comando será algo parecido a
tar -czvf [nombre_archivo] -T [archivo_lista].
Verificación de la Integridad del Respaldo
Un respaldo es inútil si está corrompido o incompleto. Un paso crucial en cualquier estrategia de respaldo es la verificación. Debes asegurarte de que el archivo que creaste contiene todos los archivos previstos y es legible.
Tareas
- Usa el comando
tarpara listar el contenido del archivosystem-backup.tar.gzsin extraerlo. - Redirige la salida de este comando a un nuevo archivo llamado
backup-contents.txten el directorio~/project.
Requisitos
- Debes crear un archivo llamado
backup-contents.txten~/project. - Este archivo debe contener la lista de todos los archivos y directorios almacenados dentro de
system-backup.tar.gz. - No extraigas los archivos; solo lístalos.
Ejemplos
Después de crear el archivo de verificación, tu directorio de proyecto debería contener el nuevo archivo backup-contents.txt:
~/project/
├── backup-contents.txt
├── backup-list.txt
├── backups/
├── config/
├── data/
└── logs/
Al ejecutar cat backup-contents.txt, deberías ver un listado detallado de todos los archivos en el respaldo:
drwxrwxr-x labex/labex 0 2025-09-11 15:08 data/
-rw-rw-r-- labex/labex 46 2025-09-11 15:08 data/transactions.csv
drwxrwxr-x labex/labex 0 2025-09-11 15:08 config/
-rw-rw-r-- labex/labex 72 2025-09-11 15:08 config/app.conf
drwxrwxr-x labex/labex 0 2025-09-11 15:08 logs/
-rw-rw-r-- labex/labex 49 2025-09-11 15:08 logs/app.log
Consejos
- El comando
tartiene una opción para listar (t) el contenido de un archivo. - Combina la opción
tconz(para gzip),v(para una lista detallada) yf(para especificar el archivo). - Usa el operador de redirección de salida
>para guardar el resultado del comando en un archivo.
Restauración de Archivos desde un Respaldo
¡Ha ocurrido un desastre! Un desarrollador junior, intentando liberar espacio, ha borrado accidentalmente el archivo de configuración principal de la aplicación, app.conf. La aplicación está caída. Te toca a ti, el Centinela de los Respaldos, restaurar este archivo crítico desde tu respaldo y salvar el día.
Tareas
- Primero, simula el accidente borrando el archivo
config/app.conf. - Luego, usa el comando
tarpara restaurar únicamente el archivoconfig/app.confdesde tu archivosystem-backup.tar.gz. El archivo debe restaurarse en su ubicación original.
Requisitos
- El archivo
~/project/config/app.confdebe estar presente después de completar la tarea. - Debes extraer solo el archivo individual
config/app.conf, no todo el contenido del respaldo.
Ejemplos
Después de restaurar el archivo app.conf, tu directorio config debería contener el archivo recuperado:
~/project/config/
├── app.conf
└── ...
Al ejecutar ls -l ~/project/config/app.conf, deberías ver el archivo restaurado:
-rw-rw-r-- 1 labex labex 72 Sep 11 15:08 /home/labex/project/config/app.conf
Puedes verificar que el contenido del archivo es correcto comprobando que contiene la configuración esperada:
## Esto debería mostrar los ajustes de la base de datos y la clave API
cat ~/project/config/app.conf
Consejos
- El comando
rmse utiliza para borrar archivos. - El comando
tarutiliza la opciónxpara extraer archivos. - Para extraer un archivo específico, puedes añadir su ruta (tal como aparece en el archivo de respaldo) al final del comando
tar -x. - La ruta completa del archivo dentro del respaldo es
config/app.conf.
Programación de Tareas de Respaldo Automatizadas
Has salvado el día, pero el trabajo de un héroe nunca termina. Confiar en respaldos manuales es arriesgado. El paso final es automatizar el proceso para que los respaldos se creen regularmente sin intervención humana. Para ello, utilizaremos cron, el programador de tareas estándar de Linux.
Tareas
- Crea una tarea cron que ejecute automáticamente un comando de respaldo.
- La tarea debe ejecutarse cada minuto (para los fines de este desafío).
- El comando debe crear un nuevo archivo
tarcomprimido dentro del directorio~/project/backups/. - Para evitar sobrescrituras, cada nuevo archivo de respaldo debe tener un nombre único que incluya una marca de tiempo (por ejemplo,
backup-2023-10-27_15-30-00.tar.gz).
Requisitos
- Debes usar
crontab -epara editar tus tareas cron. - La programación de cron debe ser
* * * * *para ejecutarse cada minuto. - El comando de respaldo dentro de la tarea cron debe usar rutas absolutas para el directorio de salida y los directorios de origen (por ejemplo,
/home/labex/project/backups). - El nombre del archivo de respaldo debe incluir una marca de tiempo.
Ejemplos
Después de configurar la tarea cron, puedes verificar que funciona revisando tu crontab y esperando a que aparezcan los respaldos automáticos. Al ejecutar crontab -l, deberías ver tu nueva tarea de respaldo:
## Ejemplo de salida (tu comando exacto puede variar)
* * * * * tar -czf /home/labex/project/backups/backup-$(date +\%Y-\%m-\%d_\%H-\%M-\%S).tar.gz -C /home/labex/project data config logs
Después de un minuto o dos, tu directorio backups debería empezar a mostrar archivos de respaldo con marca de tiempo:
~/project/backups/
├── backup-2025-09-11_15-30-00.tar.gz
├── backup-2025-09-11_15-31-00.tar.gz
├── backup-2025-09-11_15-32-00.tar.gz
└── system-backup.tar.gz
Consejos
- Ejecuta
crontab -epara abrir el editor de tareas cron. Es posible que se te pida seleccionar un editor;nanoes una buena opción. - El formato para una tarea cron es:
[minuto] [hora] [día_del_mes] [mes] [día_de_la_semana] [comando].* * * * *significa cada minuto de cada hora de cada día. - Puedes usar el comando
datepara generar una marca de tiempo. Por ejemplo,date +%Y-%m-%d_%H-%M-%Sproducirá un formato como2023-10-27_15-30-00. - Para usar la salida de un comando dentro de otro comando, utiliza
$(comando). - Importante: En un crontab, el signo de porcentaje (
%) tiene un significado especial (se trata como una nueva línea). Debes escaparlo con una barra invertida (\%) cuando lo uses con el comandodate. - Tu comando final en el crontab podría verse así:
* * * * * tar -czf /ruta/al/backup-$(date +\%F_\%T).tar.gz -C /ruta/al/origen dir1 dir2
Resumen
¡Felicidades, Centinela! Has diseñado e implementado con éxito una estrategia completa y automatizada de respaldo y recuperación. Los datos de la empresa están ahora seguros gracias a tu diligencia y habilidad. No solo has evitado una crisis potencial, sino que también has establecido un sistema que protegerá a la empresa en el futuro.
En este desafío, has dominado varias habilidades fundamentales de administración de sistemas:
- Identificación de Datos Críticos: Determinar qué es lo que realmente necesita ser respaldado.
- Creación de Archivos: Uso del comando
tarpara crear respaldos comprimidos. - Verificación de Integridad: Asegurar que los respaldos sean válidos y estén completos.
- Realización de Restauraciones: Extraer archivos específicos para recuperarse de la pérdida de datos.
- Automatización de Tareas: Programación de tareas cron para respaldos regulares y desatendidos.
Estas son habilidades esenciales del mundo real para cualquier administrador de sistemas Linux, desarrollador o ingeniero de DevOps. Has demostrado que tienes lo necesario para ser un guardián confiable de sistemas críticos.



