3 - Departamento de Informática Aplicada

Anuncio
E.U. de Informática
Departamento de Informática Aplicada
Examen Final de Administración de Sistemas Operativos
14 de septiembre de 2005
Apellidos ..................................................................................................................
Nombre .....................................................................................................................
Nº de Matrícula....................
EJERCICIO 3 (3.5 puntos)
Tiempo estimado: 40 m.
Vamos a implementar un sistema de respaldo incremental de 3 niveles con el comando tar. Dicho
sistema de respaldo se utilizará de la siguiente forma:
1. Los lunes a las 3p.m. se realizará un respaldo de nivel 0 (completo) del directorio pasado
como parámetro.
2. Los jueves a las 3p.m. se realizará un respaldo de nivel 1 (cambios con respecto al de
nivel 0) del directorio pasado como parámetro.
3. Los sábados a las 3p.m. se realizará un respaldo de nivel 2 (cambios con respecto al de
nivel 1) del directorio pasado como parámetro.
Los respaldos se almacenarán en el directorio /backups con los nombres: <dir>-lunes.tgz,
<dir>-jueves.tgz y <dir>-sabado.tgz, respectivamente. <dir> se obtiene aplicando el
comando “basename <directorio>” al directorio absoluto recibido como parámetro en los
scripts.
NOTA: La opción “-ctime <n>” del comando find busca los ficheros que han cambiado en los
últimos “n días”.
1) Escribe el script de BASH para crear el respaldo de nivel 0 del directorio pasado como parámetro
y guárdalo en el fichero /usr/local/bin/respaldo-n0.sh.
#!/bin/bash
# $1 – directorio absoluto del que se quiere realizar respaldo
dir=$(basename $1)
tar czvf /backups/${dir}-lunes.tgz $1
2) Escribe el script de BASH para crear el respaldo de nivel 1 del directorio pasado como parámetro
y guárdalo en el fichero /usr/local/bin/respaldo-n1.sh.
.....
dir=$(basename $1)
find $1 –ctime -3 >cambios
tar czvf /backups/${dir}-jueves.tgz
$(cat cambios)
3) Escribe el script de BASH para crear el respaldo de nivel 2 del directorio pasado como parámetro
y guárdalo en el fichero /usr/local/bin/respaldo-n2.sh.
.....
dir=$(basename $1)
find $1 –ctime -2 >cambios
tar czvf /backups/${dir}-sabado.tgz
$(cat cambios)
1
4) El viernes a las 11 se pierde un fichero de un directorio del cual tenemos respaldo. ¿Qué
comandos y en qué orden ejecutarías para averiguar en qué nivel del backup tienes la versión más
actual del fichero perdido?
tar
tzvf
/backups/${dir}-jueves.tgz
| grep <fichero-perdido>
y si no se encuentra:
tar
tzvf
/backups/${dir}-lunes.tgz
| grep <fichero-perdido>
obteniéndose <dir> a partir del directorio al que pertenece el fichero buscado.
5) ¿Qué comando/s utilizarías para recuperar dicho fichero?
Primero extraería todos los ficheros y luego llevaría dicho fichero a su destino:
tar xzvf /backups/<fichero-de-backup-adecuado>
cp <fichero-perdido> <destino>
2
Descargar