viernes, 13 de enero de 2012

Shell Script Examen Viernes 13

Shell Script Examen Viernes 13

Para mis queridos alumnos y alumnas, para que vean que yo también hago exámenes:

#!/bin/bash

#examen viernes 13

#Elabora un Shell script que nos permitirá gestionar las copias de seguridad
#de un determinado directorio, que se recibirá por parámetro.
#Admitirá como argumento dos parámetros, el primero deberá ser Backup o
#Restore, y el segundo el nombre de un directorio.
#Si el primer parámetro es Backup, el Shell realizará una copia de seguridad
#(backup), para todos los usuarios del sistema, en el directorio pasado como
#segundo argumento.
#Si el primer parámetro es Restore, el Shell deberá restaurar todas las
#copias de seguridad guardadas en el directorio pasado como segundo
#parámetro. Se supone que restaura en el home.
#PD.- Recordad que es imprescindible comentad el código. (hacerlo a
#conciecia y la vinculación curricular aunque no lo pida).

#Comprueba el número de parámetros y si es distinto de 2, avisa del error y sale del programa
if (( $# != 2 ))
then
    echo "Número de parámetros no correcto"
    echo "Uso $0 Backup|Restore carpeta"
    exit
fi

#echo "Número de parámetros:"$#
#inicialización de variables
#operación a realizar, Backup o Restore
operacion=$1
#carpeta destino u origen
directorio=$2
#echo $operacion
#Se comprueba si la operación es Backup o Restore y si no lo es, se sale del programa
if [ $operacion = "Backup" ]
then
    echo "Operación Backup en curso..."   
else
    if [ $operacion = "Restore" ]
    then
        echo "Operación Restore en curso..."
    else
    echo "La operación debe ser Backup o Restore y tú has escrito " $operacion
    echo "Saliendo del programa..."
    exit
    fi
fi
#ahora se comprueba si existe el directorio destino u origen
#y si no se crea
if [ -d $directorio ]
then
    echo "El directorio existe. Se sigue el proceso..."
else
    echo "El directorio no existe. Se crea."
    mkdir $directorio
    if [ $? -ne 0 ]
    then
        echo "Error al crear el directorio. Seguramente, no tienes permiso para copiar en él"
        echo "Saliendo del programa"
        exit
    fi
fi
#echo "Operación:" $operacion
#si la operación es Backup
if [ $operacion = "Backup" ]
then
#se realiza la copia de seguridad
    echo "Realizando copia de seguridad..."
    cd $directorio
    carpetahome="/home/ubuntu" #esta es la carpeta de la que se hace la copia de seguridad
    tar -cf seguridad.tar $carpetahome
else
#se restaura la copia de seguridad
    echo "Realizando la restauración..."
    #cambia a la carpeta donde restaurar, que sería home   
    cd /home/jluserovilchez/examen13
    #descomprime
    tar -xf $directorio/*.tar
fi

No hay comentarios:

Publicar un comentario