Bash – Script para backup de carpetas desde consola (2)

Ya vimos en otro artículo cómo podíamos preparar un script en nuestro PC y/o servidor web que crear backup de carpetas desde consola. Instalamos el 7zip, creamos el script que va haciendo copias de las carpetas que le decimos y ya lo tenemos.

Ahora bien, nos puede interesar personalizar esas copias de tal modo que los ficheros de copias de seguridad añadan la fecha en su nombre. Muy típico en backups de servidores web donde vamos a programarlos y nos interesa sasber la fecha de cada backup.

Supongamos que hacemos copias de las carpetas donde alojamos la web (tal y como explicamos en el primer artículo), pero cambiaremos el nombre del fichero resultante de

elnombredelacopia.7z

a

elnombredelacopia-2016-01-15.7z

Como ya vimos, el script para hacer la copia de seguridad recursiva de carpetas era

#!/bin/bash
cd /opt/lampp/htdocs/
for dir in $(dir -D)
do
7z a -t7z /tmp/Proyectos-$dir.7z $dir -mx9 -pNuestroPassword;
done
exit

Pues ahora añadimos al nombre final del fichero de copia de seguridad, la fecha

#!/bin/bash
FECHA=$(date +"%Y-%m-%d")
cd /opt/lampp/htdocs/
for dir in $(dir -D)
do
7z a -t7z /tmp/Proyectos-$dir-$FECHA.7z $dir -mx9 -pNuestroPassword;
done
exit

Lo que estamos haciendo es añadir la variable FECHA al nombre. Primero le damos el valor de la fecha $(date +»%Y-%m-%D») y luego lo añadimos al noombre.

Si los backups se hicieran varias veces al día, habría que añadir las horas, por ejemplo…

Igual que utilizamos 7zip, podemos utilizar el compresor que tengamos instalado: zip, gzip, tar.gz… Pero tendríamos que ver las instrucciones a utilizar en cada uno de los casos


Más información

Espero que os sea de utilidad.