Copias de seguridad utilizando 7-zip en Windows

Posted by in Programación, Sistemas Operativos

En esta ocasión, no hablamos ni de Python ni de bases de datos, sino de copias de seguridad, un aspecto muy importante y que no se dedica toda la atención que merece, hasta que tienes un problema, y entonces, es cuando tomas medidas. Lo que vas a empezar a leer es cómo automatizar la tarea de realizar copias de seguridad utilizando el compresor gratuito 7-zip.

Probando que podemos utilizar 7-zip desde la consola MS-DOS

La primera tarea es instalarlo, por supuesto, y la siguiente es comprobar que podemos hacer uso de 7z desde una consola MS-DOS (Inicio / Ejecutar / cmd).

7z desde consola

7z desde consola

Si te saltara un error, entonces debes configurar las variables de entorno y agregar el directorio donde tienes instalado 7-zip (en mi caso, en c:\Archivos de Programa\7-zip). Si no sabes cómo hacerlo, puedes seguir estas instrucciones o estas.

Preparando la línea de comandos

Ya podemos acceder a 7-zip desde la consola de MS-DOS, así que para probar que funciona, seguiremos las instrucciones que puedes localizar en la ayuda de 7-zip. Imágina que estás en la raíz de una unidad, y quieres comprimir el directorio GAE, y crear gae.7z. El comando es el siguiente:

7z a gae.7z gae

Desgranando el comando:

  • 7z, es la llamada a 7-zip, o sea, el ejecutable
  • a, es el parámetro obligatorio que indica la opción a realizar (otros son e para extract, d para delete, o l parael listado. Puedes ver el listado de opciones en la ayuda)
  • gae.7z, es el nombre del fichero comprimido a generar
  • gae, es el nombre del directorio o archivo que se va a comprimir (en mi caso, es un directorio)

Aquí lo tienes:

7z gae

7z gae

y funcionando:

7z gae

7z gae

Y vemos que el archivo creado gae.7z, desde la versión GUI de 7-zip, contiene el contenido:

7z GUI

7z GUI

 Preparando un fichero de múltiples directorios

Para incluir en un archivo comprimido más de un directorio, lo recomendable es crear un fichero de texto con las rutas, donde cada una debe ir separada por retorno de carro. En mi caso, me interesa incluir varios directorios, así que (sigo la recomendación de la ayuda) creo un fichero con las rutas (si la ruta tiene espacios en blanco, es importante poner la ruta entre comillas dobles “). Guardamos el fichero como backup_lista.txt:

listado directorios para Backup

listado directorios para Backup

Ahora, probamos el comando:

7z a backup.7z @backup_lista.txt

Y vamos que todo se realiza correctamente:

7z Backup con listado

7z Backup con listado

Y cargamos en el 7-zip GUI para comprobar que de nuevo, todos los directorios previstos se han almacenado en backup.7z:

7z gui

7z gui

Programando todo en un proceso bat

Seguramente, querrás realizar toda esta operación con más de un directorio, y separando en varios ficheros. Pues, lo mejor es programar un fichero de backup.bat, que corren bajo MS-DOS, donde incluimos el comando.

preparando BAT

preparando BAT

Ahora, podemos ejecutar el proceso tanto haciendo clic en el fichero backup.bat, como lanzándolo desde la consola MS-DOS, consiguiendo nuestro backup de los directorios importantes.

Si tienes el archivo en una ubicación concreta, puedes ponerlo seguido de la arroba @”l:\ruta con espacios\backup_list.txt”.

Si quieres personalizar la ruta para que cada día te cree un archivo, debes ampliar tu proceso batch tal que así:


SET fecha=_%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
7z a backup_v%fecha%.7z @"l:\backup\lista_backup_v.txt"

Ahora, cada vez que ejecutes el proceso, se generará un archivo cada día, pudiendo almacenar copias de varios días!

Ejecución del proceso al iniciar sesión

Una de las opciones para automatizar aún más el proceso de copias de seguridad es crear un enlace e incluirlo en el menú Inicio, de forma que cuando se inicia sesión, todo lo que esté en dicho directorio es ejecutado, y por tanto, también se lanzará el script. Esta solución es una de las que suelo usar más frecuentemente.

Y con esto, ahora no tendras problemas con tus datos más sensibles!

Happy coding!

Google+ Comments - Comentarios Google+