Ubuntu – Script para backup de carpetas desde consola (1)

Nos ponemos en situación

Tenemos una carpeta en la que almacenamos todos nuestros proyectos. Pongamos que estamos hablando de la carpeta:

/opt/lampp/htodcs/

Dentro de esta carpeta tenemos muchas otras carpetas, cada una de ellas con un proyecto. Además, se van añadiendo nuevas carpetas.

Qué queremos hacer?

Crear un script llamamdo backup-proyectos.sh que se encargue de comprimir cada uno de los proyectos (carpetas de proyectos) por separado.

Así pués, como hemos dicho anteriormente tendremos

/opt/lampp/htodcs/proyecto1
/opt/lampp/htodcs/proyecto2
/opt/lampp/htodcs/proyecto3
/opt/lampp/htodcs/proyecto4

/opt/lampp/htodcs/proyectoN

Y queremos que cuando se ponga en marcha el backup, nos queden las copias de las carpetas por separado:

proyecto1.7z
proyecto2.7z
proyecto3.7z
proyecto4.7z

proyectoN.7z

Nos preparamos

Necesitamos el comprimidor que utilicemos. En mi caso 7z, que consigo buenos ratios de compresión. Para instalarlo en Ubuntu:

sudo apt-get install p7zip-full

Aquí cada uno es libre de utilizar el que desee (zip, rar, tar.gz… )

nuestro script

Nos vamos al /home/nombreusuario, y con cualquier editor (kate, gedit…) creamos un fichero llamado backup.sh

Lo tenemos? Pues en su interior añadimos las siguientes lineas (atentos que tendréis que adaptarlas a vuestras necesidades):

1
2
3
4
5
6
7
#!/bin/bash
cd /opt/lampp/htdocs/
for dir in $(dir -D)
do 
7z a -t7z /tmp/Proyectos-$dir.7z $dir -mx9 -pNuestroPassword;
done
exit
  • La primera linea indica que es un ejecutable que interpretará bash.
  • La segunda, nos lleva al directorio donde estan todas las carpetas a comprimir por separado.
  • En la tercera linea empieza el for que recorre todas las carpetas.
  • En la quinta, la orden que comprime las carpetas que va recorriendo el for ($idr).

me guastaría remarcar que en la orden de 7z, por un lado le digo dónde debe ir a parar el fichero comprimido (/tmp/Proyectos-$dir.7z) y por otro, le indico que carpeta comprimir ($dir). Además le digo que lo comprima lo máximo (-mx9) y que le ponga contraseña (-pNuestroPassword)

Ya tenemos el script

Ahora guardáis el fichero, y volvéis a estar en el terminal Ubuntu. Ahora tenemos que hacer que el fichero que hemos creado tenga permisos de ejecución. Tan simple como ejecutar la orden:

1
chmod +x backup.sh

Backup

Pues ya podemos ejecutar el backup con la siguiente orden:

1
./backup.sh

Espero que os sirva de ayuda para organizar y agilizar vuestras copias de seguridad.

Actualización
En el siguiente enlace veréis como añadir la fecha al nombre del fichero resultante del backup
Bash – Script para backup de carpetas desde consola (2)

Mas información

Información relacionada

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*