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