Si sóis unos maníacos de las copias de seguridad de vuestros datos importantes (como yo) sabréis que una de las premisas principales para tener un buen sistema de respaldo es hacer backup también de la copia de seguridad. Aunque cierto es que es complicado, la alineación de los astros puede ocasionar que perdáis la información de vuestro PC y cuando vayáis a echar mano de vuestro flamante disco con la copia de seguridad resulta que el mismo está dañado (muchos os reiréis y otros estaréis asintiendo con la cabeza con cara de pena…). De ahí de tener un clon del disco de copias de seguridad.
My Book Live, uno de los NAS de WD, incorpora una funcionalidad muy interesante que es los SafePoints y no es más ni menos que una copia automatizada de todo nuestro disco duro en otro disco duro de red. A mi esta opción no me funciona correctamente, pues la mayoría de las veces se interrumpe la copia, tarda mucho en realizarse o desaparece de la lista de SafePoints. Si también os pasa esto y queréis un método alternativo, podéis hacer esto mismo con rsync directamente. ¿Os apuntáis?
Lo primero: acceder por SSH
Para poder hacer estas modificaciones necesitaremos acceder al MBL mediante SSH. No viene habilitado por defecto, pero para habilitarlo y conectarnos por SSH sólo tendremos que hacer lo siguiente:
- Acceder por el navegador al interfaz Web del MBL (http://mybooklive). He puesto como ejemplo la dirección que yo utilizo, sustituidla por la IP del disco duro o la URL que soláis utilizar
- Cambiar la URL por la siguiente: http://mybooklive/UI/ssh. Os aparecerá una ventana para activar el acceso por SSH, junto con el usuario y password por defecto (root/welc0me)
- Probad a acceder por SSH desde línea de comandos (ssh -l root mybooklive) o bien, mediante algún programa como PUTTY.
¿Fácil no? Ya tenemos acceso a nuestro flamante disco duro por SSH (si…. es un Linux lo que tiene instalado el disco duro)
Configurar los archivos a realizar backup
Seguramente no queráis sacar una copia de seguridad de todos los archivos de vuestro disco duro, solamente de aquellos importantes. Para añadir directorios a la lista de exclusión editaremos el fichero: /etc/nas/NSPT/exclude.txt (podemos usar el comando «vi /etc/nas/NSPT/exclude.txt»).
Este fichero es el mismo que utiliza la funcionalidad de SafePoints, con lo cual si queremos utilizarla también podemos modificar este fichero para no hacer backup de todo. Al especificar las rutas hay que tener en cuenta de poner una barra («/») inicial y final del directorio a excluir y tener en cuenta que los mismos se definen a partir de la ruta «/shares/». De esta manera, si queremos excluir de la copia de seguridad el recurso compartido «Public» (dónde normalmente tenemos las películas, música y demás fotos que quizás no nos interese hacer un segundo backup) el fichero nos quedaría como sigue (en rojo la nueva línea):
/Public/
.AppleDouble
.AppleDB
.AppleDesktop
Temporary Items
Network Trash Folder
.DS_Store
.tickle
.mediacrawler
*:*
*"*
*<* *>*
*|*
*\\*
*\?*
*\**
.nflc_data
El script de backup con rSync
Ahora viene la parte importante y es hacer un script con rSync que clone toda la información que tenemos en nuestro disco duro en otro recurso de red. Para que esto funcione se supone que tenemos otro NAS, carpeta compartida, o disco duro conectado al router (mi caso) en dónde haremos la copia de seguridad. Esa unidad tendremos que montarla en algún directorio, de tal manera que crearemos uno a tal efecto, por ejemplo, dentro de la carpeta «media», que es dónde se montan los volúmenes para realizar los SafePoints. Usaremos el siguiente comando:
mkdir /media/AsusUSB
Yo le he dado el nombre «AsusUSB», utilizad vosotros el que consideréis oportuno. A continuación deberemos crear un script con la rutina de backup con rSync. En mi caso lo he llamado «doMBLBackup.sh» y lo tengo almacenado en el directorio /shares/Public/
mount.cifs //AsusUSB/MBLBackup /media/AsusUSB -o credentials=/root/asususer.credentials
sleep 6
cp /dev/null /shares/Public/doMBLBackup.log
sleep 2
rsync -rtDvH --delete --log-file /shares/Public/doMBLBackup.log --exclude-from /etc/nas/NSPT/exclude.txt /shares/ /media/AsusUSB >/dev/null
sleep 6
umount /media/AsusUSB
Si os dais cuenta, las credenciales no las incluyo en el propio script, sino que las almaceno en un fichero llamado «asususer.credentials» (ponedle el nombre que queráis) que sólo contiene tres líneas con el nombre de usuario y la contraseña utilizados para conectarse al recurso de red:
username=NOMBRE_USUARIO
password=PASSWORD
domain=WORKGROUP
Podemos poner también las credenciales en el propio script, pero he considerado mejor almacenarlo en la carpeta home del root para que los usuarios con acceso a la carpeta pública no vean estas credenciales.
Si ejecutamos el script anterior veremos que se realiza una copia de todo el contenido de «shares» de nuestro MBL excepto de aquello que hayamos incluido en el archivo «exclude.txt». La copia se hace en el recurso compartido que hemos montado en el directorio «/media/AsusUSB»
Automatizando la copia
Una vez que tenemos el script de backup funcionando (cuando lo probéis comprobaréis que es muchísimo más rápido que los SafePoints) ya sólo nos queda automatizarlo. Para ello daremos de alta un nuevo cron (tarea programada).
Para editar la lista de tareas programadas debéis utilizar el siguiente comando:
crontab -e
Acto seguido se os abrirá un editor en el que seguramente no veáis ninguna tarea, pues no hay ninguna por defecto creada. Las tareas consisten en 6 parámetros en un línea con el siguiente formato:
* * * * * Comando a ejecutar
- - - - -
| | | | |
| | | | +----- Día de la semana (0-7)
| | | +------- Mes (1 - 12)
| | +--------- Día del mes (1 - 31)
| +----------- Hora (0 - 23)
+------------- Minutos (0 - 59)
En mi caso, he querido programar el script «/shares/Public/doMBLBackup.sh» para que se ejecute todos los días a las 02:00AM, con lo que la línea a añadir sería:
0 2 * * * /shares/Public/doMBLBackup.sh
Al salir del editor y grabar el archivo veréis que aparece un mensaje indicando que se está instalando el nuevo cron. Podéis verificar si se ha programado correctamente la tarea mediante el comando «crontab -l».
¡Tachan! Ya tenemos nuestro MyBookLive configurado para que se haga una copia de seguridad automática todos los días a las 02:00AM. ¡Ah! Se me olvidaba; como mejora se puede modificar el script para que nos envíe un correo al terminar de realizar la copia y así nos quedamos realmente tranquilos de que la misma ya se ha hecho.
¡A dormir tranquilos backup-maníacos!