IES Miguel Romero Esteo - Departamento de Informática - Linux/Unix

Bash y programación en Bash / Práctica 10

Referencias:

[1] http://asir.sudo.es/docnux/bash.1.html

Enunciado:

En el directorio de referencia crear un shell script para automatizar las copias de seguridad de las cuentas de usuarios. Debe cumplir las siguientes especificaciones:

Se entiende que los usuarios a salvar son aquellos cuyo UID es igual o superior a 1000 y están establecidos de forma coherente en el sistema, es decir, el directorio $HOME existe y el usuario tiene asignada una password. Si no se cumplen estas condiciones no se tendrá en cuenta el registro de dicho usuario.

El nombre del script será CopiaSeguridad.sh

La copia de seguridad consistirá en un fichero de nombre usuarios y en un fichero por cada usuario de nombre <usuario>.tgz.

El script debe admitir dos parámetros obligatorios: acción a realizar, directorio de base de la acción a realizar.

En la implementación del código se utilizarán funciones que modularicen las acciones a realizar.

acción a realizar

Dos posibles valores, -c para crear la copia de seguridad, -r para restaurar la copia de seguridad.

-c bifurcará el proceso a la búsqueda (en los ficheros adecuados) de la información necesaria y generará el fichero usuarios. Extraerá de los directorios $HOME de cada usuario todo su contenido y lo empaquetará y comprimirá en sendos archivos <usuario>.tgz.

-r bifurcará al proceso a la restauración de la información, por tanto, extraerá de los archivos <usuario>.tgz los datos que depositará en los directorios $HOME de los usuarios. Esta parte del proceso tendrá en cuenta lo siguiente:

1 Si en el momento de la restauración el usuario no existe se creará con los datos que aporta el fichero usuarios.

2 Si el usuario existe, se cargará la información de <usuario>.tgz en el directorio $HOME que tenga en ese momento, al margen del home directory que contiene el fichero usuarios para ese usuario.

3 Los archivos y directorios del usuario deben quedar restaurados con los mismos permisos de acceso que tuviesen en el momento de hacer la copia de seguridad.

directorio de base de la acción a realizar

Si se trata de crear la copia de seguridad será dónde se ubique todo el material generado. Si es restauración se tomarán los datos a restaurar desde esta ubicación. El valor de este argumento se expresará en modo absoluto y se referirá a un directorio que exista.

El fichero usuarios tendrá la siguiente estructura:

usuario:nombre completo:clave encriptada:directorio home:shell