Script para respaldar carpeta en Linux

Publicado por parzibyte en

Introducción

Programando un script que automatiza algunas cosas me di cuenta de que necesitaba otro script para respaldar determinada carpeta. Es decir, respaldar o hacer un backup de un directorio usando un script de bash.

Lo que hace este script no es nada nuevo, pero funciona muy bien. Lo escribí hace casi un año pero funciona.

Simplemente empaqueta o comprime todo el contenido de un directorio a un archivo .tar.gz. Podemos, más tarde y con algunas pequeñas modificaciones, programarlo con cron pero eso es otra historia.

Actualización: respaldar carpeta periódicamente

Ya he escrito la continuación de este script sobre cómo utilizar cron para respaldar el directorio cada cierto tiempo.

Script para respaldar

Hablar es de mal gusto, así que aquí el código del script para respaldar un directorio y más abajo lo explicamos:

En la primera línea vemos el Shebang, que es un comentario (muy importante) indicando la ruta de la ejecución, que en este caso es el binario de bash.

Luego obtenemos la fecha y hora para llamar así a nuestro respaldo (por ejemplo, respaldo_28-11-1996_21-06-00.tgz)

Definimos algunas variables como el nombre del archivo, la carpeta en donde serán guardados los respaldos y la carpeta que respaldaremos. Esta variable es la que cambiaremos según lo que deseemos respaldar (valga la redundancia)

Más tarde, con mkdir creamos la carpeta en donde guardaremos los backups. Lo llamamos con la opción p para que, si el directorio no existe, sea creado.

Finalmente llamamos a tar con las opciones cfvz. Me parece que la c es para crear, la v para que sea verboso o imprima mensajes de debug, la z para que los archivos sean comprimidos con gzip y f para que opere sobre el archivo que le estamos pasando como argumento.

Modo de uso

Lo ponemos en algún lugar preferentemente en /home/tu_usuario

No olvidemos darle permisos de ejecución con:

chmod 755 respaldar.sh

Cambiamos el nombre de las variables (dependiendo de la carpeta que vayamos a respaldar, así como el directorio que cambiará los respaldos) y luego lo ejecutamos con:

./respaldar.sh

Ejemplo

Voy a descargar el script y lo pondré en /home/luis

En la carpeta “cosas_importantes” tengo algunos archivos txt. Se supone que toda esa carpeta será respaldada.

Listado de archivos a respaldar

Listado de archivos a respaldar

Damos permiso de ejecución al script y lo ejecutamos. Como vemos, tar nos dice cuáles archivos está comprimiendo:

Ejecución del script

Ejecución del script

Con ello se habrá creado la carpeta “respaldos” y dentro de ella está nuestro backup con el nombre que le pusimos

Comprobación de backup creado con script para respaldar

Comprobación de backup creado con script para respaldar


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

4 Comments

Ejecutar comando de historial de Linux usando su número - Parzibyte's blog · noviembre 14, 2018 a las 5:12 pm

[…] Eso nos da una lista de los comandos previamente ejecutados, junto con un número. En algún momento pudimos haber ejecutado un comando pero no queremos escribirlo de nuevo; por ejemplo un script sh. […]

Respaldar carpeta de Linux periódicamente usando cron - Parzibyte's blog · enero 30, 2019 a las 5:00 am

[…] pasó algún tiempo desde que publiqué un simple script que se encarga de hacer un backup de una carpeta; es decir, respalda toda una carpeta con su […]

Administrar cuenta de Google Drive desde Linux con gdrive y comandos - Parzibyte's blog · julio 1, 2019 a las 12:13 pm

[…] a esto podríamos hacer algunos respaldos automáticos a Google Drive desde Linux; pero eso lo dejaré para otro […]

Extraer archivo .tar.gz en Linux - Parzibyte's blog · julio 1, 2019 a las 4:46 pm

[…] El programa / utilidad de Linux llamado tar crea archivos con extensión .tar.gz comprimidos, los cuales se pueden utilizar para múltiples cosas como respaldos. […]

Deja un comentario

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: