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.
Si esta entrada te facilita la vida y te evita la pérdida de tu información, te animo a que hagas una donación 💰para que siga mejorando.
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).
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. Imagina 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:
y funcionando:
Y vemos que el archivo creado gae.7z, desde la versión GUI de 7-zip, contiene el contenido:
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:
Ahora, probamos el comando:
7z a backup.7z @backup_lista.txt
Y vamos que todo se realiza correctamente:
Y cargamos en el 7-zip GUI para comprobar que de nuevo, todos los directorios previstos se han almacenado en backup.7z:
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.
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 tendrás problemas con tus datos y ficheros más sensibles, y estarás un poco más seguro!
Happy coding!