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

Artículos relacionados

Instalar paquete debian .deb desde consola Por diferentes motivos, nos puede interesar o nos puede hacer falta instalar los paquetes .deb en nuestro sistema linux desde consola. Yo mismo, despu...
Linux consola- Bash – Trabajo con ficheros csv Aquí algunos códigos para trabajar con ficheros CSV separados con tabulación: Quitar todos los comentarios de un CSV grep -v ^# fichero-original.c...
Linux consola- Bash – Descarga de ficheros Aquí os dejo algunas instrucciones ejecutables desde consola Linux (bash): Descargar fichero de Internet wget "http://www.enlacedelaweb.com/elfich...
Búsqueda recursiva de ficheros con un texto determ... Veamos la orden para encontrar los ficheros que contengan un determinado texto. Supongamos que necesitamos buscar los ficheros que contengan en su int...

Deja un comentario

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

*