UN CASO PRACTICO |
---|
Explicaré aquí un caso práctico de utilización de rsync para restaurar en el equipo local una copia de seguridad guardada en un equipo remoto. Para ello vamos a crear un script llamado restaurar.sh
El script se encargará de copiar los ficheros del directorio remoto en el directorio local.
$ gedit restaurar.sh
Se asume la siguiente situación |
---|
Usuario que realiza la operación: usuario |
Ubicación local de la carpeta: directorio actual |
Equipo Ubuntu remoto: 192.168.0.1 |
Ubicación donde guardar en el equipo Ubuntu remoto: /home/usuario/backup |
Introduce las siguientes lineas.
#!/bin/bash # Programa para restaurar una copia de seguridad guardada en un Equipo Ubuntu Remoto. # ----------------------------------------------------------------------------------- clear echo "----------------------------------------------------------------" echo 'Connectando con ordenador remoto' echo "----------------------------------------------------------------" #Equipo Remoto DEST="192.168.1.1" # Se ejecuta sólo si el $DEST responde. VAR=`ping -s 1 -c 1 $DEST > /dev/null; echo $?` if [ $VAR -eq 0 ]; then echo "Equipo $DEST conectado OK." echo "----------------------------------------------------------------" else echo "No puedo conectarme a $DEST." echo "----------------------------------------------------------------" exit fi # Usuario que se conectará al servidor #USER="usuario" # Directorio de origen (remoto) BACKDIR="$DEST://home/usuario/backup" # Directorio local DESTDIR="." # Realiza la copia, mostrando a detalle lo que hace. OPTS="-v -u -a --delete --rsh=ssh --stats" rsync $OPTS $BACKDIR $DESTDIR
Guarda el fichero editado.
Ya tenemos el script preparado para realizar la copia de seguridad. Vamos a hora a explicarlo un poco mejor para que no quede ninguna duda.
1. Empezamos guardando en la variable DEST la dirección IP o el nombre del equipo remoto en el que queremos hacer la copia de seguridad.
En nuestro caso es 192.168.1.1
#Equipo Remoto DEST="192.168.1.1"
2. Ahora comprobamos que el equipo Ubuntu remoto esta conectado en disposición de aceptar la conexión. Para ello le enviamos un ping, si nos responde continuamos con el programa, en caso negativo terminamos aquí y no se hace la copia de seguridad.
# Se ejecuta sólo si el $DEST responde. VAR=`ping -s 1 -c 1 $DEST > /dev/null; echo $?` if [ $VAR -eq 0 ]; then echo "Equipo $DEST conectado OK." echo "----------------------------------------------------------------" else echo "No puedo conectarme a $DEST." echo "----------------------------------------------------------------" exit fi
3. Continuamos, en la variable USER guardamos el nombre del usuario, en BACKDIR la careta que contiene la copia de seguridad en el equipo remoto, DESTDIR la carpeta donde queremos almacenar a copia restaurada.
# Usuario que se conectará al servidor #USER="usuario" # Directorio de origen (remoto) BACKDIR="$DEST://home/usuario/backup" # Directorio local DESTDIR="."
4. Por último guardamos las opciones que vamos a emplear del programa rsync en la variable OPTS y ejecutamos el comando para realizar la copia de seguridad.
#Realiza la copia, mostrando a detalle lo que hace. OPTS="-v -u -a --delete --rsh=ssh --stats" rsync $OPTS $BACKDIR $DESTDIR
Con esto está explicado el funcionamiento del script, vamos a hora a ejecutarlo.
$ ./restaurar.sh