GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer una copia de seguridad y restaurar archivos usando BorgBackup en Linux

En Linux, existen múltiples herramientas de copia de seguridad que brindan funcionalidad para la copia de seguridad a nivel del sistema, así como para la copia de seguridad de los datos del usuario. En este completo artículo, veremos qué es BorgBackup y cómo hacer una copia de seguridad y restaurar archivos usando Borg en Linux y sistemas similares a Unix.

1. Introducción

Cuando trato con una gran cantidad de datos en mi trabajo, las preguntas obvias que me vienen a la mente al principio son:1. ¿Qué pasa si pierdo mis datos? 2. ¿Qué tan bien están protegidos mis datos?

El mismo escenario se aplicará a la máquina personal. Siempre debe hacer una copia de seguridad de sus datos según su importancia y proteger sus datos contra el acceso ilegal.

Ya sea que se trate de sus datos personales o datos oficiales, siempre debe planificar una buena estrategia de respaldo y utilizar herramientas de respaldo sólidas que lo ayudarán a respaldar sus datos importantes. Una de las aplicaciones de copia de seguridad de código abierto más recomendadas y utilizadas es "Borg" .

2. ¿Qué es Borg?

BorgBackup, abreviado borg, es una herramienta de copia de seguridad creada para proporcionar una forma eficiente de realizar una copia de seguridad de sus datos utilizando la técnica de deduplicación.

Algunas de las características únicas de borg se enumeran a continuación.

  • Deduplicación - La técnica de deduplicación almacena solo las copias incrementales de los datos, lo que es perfecto para realizar copias de seguridad diarias.
  • Multiplataforma - Borg se puede instalar y usar en Linux, Mac OS X y FreeBSD.
  • Seguro - Admite el cifrado de datos mediante AES cifrado (256 bits), para verificar la autenticidad HMAC-SHA256 se utiliza.
  • Compresión - Los datos se pueden comprimir utilizando los siguientes métodos de compresión:
    • LZ4 -> Súper rápido, baja compresión.
    • ZSTD -> Alta velocidad y baja compresión a baja velocidad y alta compresión.
    • ZLIB -> Velocidad media, compresión media.
    • LZMA -> Baja velocidad, alta compresión.
  • Copia de seguridad remota - Los datos se pueden respaldar en máquinas remotas a través del protocolo SSH.

3. Instalar Borg en Linux

Borg está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux. Por lo tanto, se puede instalar utilizando el administrador de paquetes específico de la distribución.

Para instalar borg en Alpine Linux, ejecute el siguiente comando:

$ sudo apk add borgbackup

Para instalar borg en Arch Linux y sus variantes, como EndeavourOS y Manjaro Linux, ejecute el siguiente comando:

$ sudo pacman -S borg

Instale borg en una distribución basada en Debian/Ubuntu:

$ sudo apt install borgbackup -y

Instale borg en Fedora, RHEL, CentOS, AlmaLinux y Rocky Linux:

$ sudo dnf install borgbackup -y

Instale Borg en openSUSE:

$ sudo zypper install borgbackup -y

Dado que borg está escrito en Python , puede usar el administrador de paquetes de python PiP para instalar borg. Según la versión de pip instalada, puede ejecutar cualquiera de los siguientes comandos.

$ pip install borgbackup

O,

$ pip3 install borgbackup

Una vez instalado, puede verificar la instalación de Borg ejecutando los comandos de versión y ayuda:

$ borg --version
$ borg --help

4. Realice su primera copia de seguridad con Borg

Debe comprender dos términos importantes antes de realizar su primera copia de seguridad.

  • Archivos - La copia de seguridad (instantáneas) de sus datos se denominará archivo.
  • Repositorios - Directorios en su sistema de archivos local o remoto donde se almacenan los archivos.

Primero Inicialice un repositorio (directorio) donde se almacenarán los archivos.

Tengo una lista de archivos en un directorio llamado "fuente" y creó un nuevo directorio llamado "copia de seguridad" que actuará como mi repositorio para almacenar archivos.

5. Inicializar repositorio

Ejecute el borg init comando para inicializar el directorio de copia de seguridad. El directorio de respaldo puede estar en una máquina local o en una máquina remota. En mi caso, estoy inicializando el directorio (es decir, copia de seguridad ) que ya creé.

$ borg init --encryption=none /home/karthick/borg/backup
$ borg init --encryption=repokey /home/karthick/borg/backup
$ borg init --encryption=keyfile /home/karthick/borg/backup

Cuando inicializa un repositorio, puede elegir el tipo de cifrado . Cuando usa el tipo de cifrado como "Ninguno" , no se aplicará ningún cifrado. Cuando usas "repokey" y "archivo de claves" como tipos de cifrado utiliza AES-CTR-256 para el cifrado.

Elija cualquier tipo de cifrado y ejecute init dominio. En mi caso, elijo el tipo de cifrado como ninguno con fines demostrativos.

6. Copia de seguridad de archivos usando Borg

6.1. Crear primera copia de seguridad

Una vez que se inicializa el repositorio, puede crear archivos de copia de seguridad ejecutando el siguiente comando:

$ borg create --stats --progress /home/karthick/borg/backup::25-11-2021 /home/karthick/borg/source/

Aquí, doy el nombre del archivo en formato de fecha "25-11-2021" simulación de copias de seguridad diarias. Sin --stats y --progress banderas, la salida del comando de creación será silenciosa.

6.2. Mostrar archivos al crear copias de seguridad

También puede combinar la --list y -v indicador para mostrar la lista de archivos en el archivo mientras se ejecuta borg create comando.

$ borg create --list -v /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/

6.3. Crear copias de seguridad comprimidas

Por defecto, borg usa el lz4 algoritmo de compresión. El algoritmo de compresión lz4 es muy rápido y tiene una relación de compresión baja. En caso de que quiera usar un algoritmo de compresión diferente, puede usar --compression marca y pasa el tipo junto con el nivel de compresión.

Por ejemplo, si deseo usar zstd algoritmo, entonces mi comando será el siguiente.

$ borg create --compression zstd,1 /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/

Puede echar un vistazo a los diferentes algoritmos de compresión y su nivel en la documentación oficial de Borg .

6.4. Obtener información de archivo

Puedes usar la info comando para obtener información sobre un archivo específico.

$ borg info /home/karthick/borg/backup/::25-11-2021

7. Lista de copias de seguridad

Usando la borg list comando, puede consultar su repositorio para encontrar la lista de archivos y qué archivos hay dentro de los archivos.

Para obtener la lista de archivos solo, ejecute el siguiente comando.

$ borg list /home/karthick/borg/backup

Salida de muestra:

25-11-2021 Thu, 2021-11-25 13:16:53 [653d952301fc70ab9f2f74794361359144e05f5534e668ef4a4957d2c7f67937]
26-11-2021 Thu, 2021-11-25 13:19:51 [473bbe30fbe8597b63910310d567e69b501b2fb7127f04a78da76ab59d90114f]
27-11-2021 Thu, 2021-11-25 13:20:01 [0e6813f1a05246d43d196de9d28034d0397b4ae50cd20ee50163e347efee3e2a]

También puede usar --json bandera que dará más información sobre el repositorio y la lista de archivos en el json formato.

$ borg list --json /home/karthick/borg/backup

7.1. Listar archivos en archivos

Para obtener la lista de archivos dentro de un archivo, ejecute el siguiente comando. Aquí estoy enumerando archivos del archivo "25-11-2021" .

$ borg list /home/karthick/borg/backup::25-11-2021

Salida de muestra:

drwxrwxr-x karthick karthick 0 Thu, 2021-11-25 12:48:58 home/karthick/borg/source
-rw-r--r-- karthick karthick 807 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/project_profile.txt
-rw------- karthick karthick 2301 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/hist.txt
-rw-r--r-- karthick karthick 220 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/external.txt
-rw-r--r-- karthick karthick 3895 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/config.txt

También puede usar --json-lines bandera para enumerar el contenido del archivo en JSON formato.

7.2. Excluir archivos y directorios de la copia de seguridad

Puede excluir archivos y directorios usando -e o --exclude bandera.

$ borg list /home/karthick/borg/backup::25-11-2021 --exclude "hist"

8. Encuentra la diferencia entre archivos

Puedes usar el diff comando para comparar dos archivos.

Estoy creando un nuevo archivo llamado datafile.txt bajo el source directorio. También he creado un archivo más llamado 28-11-2021 .

Ahora puedo comparar el archivo nuevo y el antiguo como se muestra a continuación:

$ borg diff /home/karthick/borg/backup/::27-11-2021 28-11-2021
added 2.89 kB home/karthick/borg/source/datafile.txt

9. Renombrar archivos

Una vez que se crea un archivo y si desea cambiarle el nombre, puede hacerlo usando borg rename dominio.

Digamos que si deseo cambiar el nombre del archivo "27-11-2021" a "29-11-2021" , puedo hacer esto ejecutando el siguiente comando.

$ borg rename /home/karthick/borg/backup/::27-11-2021 29-11-2021

10. Restaurar archivos usando borg (Extraer los datos del archivo)

El enfoque principal de la copia de seguridad de los datos es restaurarlos cuando sea necesario. Entonces puedes usar el borg extract comando para recuperar los datos de los archivos. Cuando ejecuta el extract comando, extraerá los datos al directorio de trabajo actual desde donde está ejecutando el comando de extracción.

Ejecute el siguiente comando para extraer un archivo al directorio de trabajo actual. Con el -v y --list bandera agregada, le mostrará la lista de archivos extraídos.

$ borg extract -v --list backup/::25-11-2021

También puede usar --dry-run bandera que simplemente mostrará lo que se va a extraer en lugar de extraerlo.

$ borg extract --dry-run -v --list backup/::25-11-2021

Puede extraer un directorio particular del archivo pasando el nombre del directorio. Dado que solo tengo un directorio en mi archivo, lo recuperará.

$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/

10.1. Excluir archivos de la restauración

También puede agregar --exclude para omitir archivos al extraer un directorio. Aquí estoy extrayendo todos los archivos excluyendo cualquier archivo con hist .

$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/ --exclude "hist"

11. Montar y desmontar repositorios y archivos

Puede montar el repositorio o un archivo en particular como un sistema de archivos de fusión. Luego puede restaurar archivos usando el archivo montado.

Para montar todo el repositorio, ejecute los siguientes comandos:

$ mkdir /tmp/borg/
$ borg mount /home/karthick/borg/backup/ /tmp/borg/
$ ls -l /tmp/borg/

Salida de muestra:

drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 25-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 26-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 27-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 28-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:32 29-11-2021

Puede ver en el resultado anterior que todos mis archivos están montados como un directorio y ahora simplemente puedo restaurar copiando los archivos.

Para montar archivos particulares, simplemente agregue el nombre del archivo junto con el repositorio.

$ borg mount /home/karthick/borg/backup/::25-11-2021 /tmp/borg/

Para desmontar el repositorio o los archivos montados, use el borg umount comando.

$ borg umount /tmp/borg
$ ls -l /tmp/borg

12. Podar archivos

La borg prune El comando será muy útil cuando esté automatizando sus copias de seguridad y solo quiera mantener solo ciertas copias y limpiar las copias restantes.

Las opciones en la tabla anterior deciden cuántas copias de archivo se mantendrán en su repositorio. Por ejemplo, si deseo conservar solo 2 copias de mi copia de seguridad semanal, entonces mi comando será el siguiente.

$ borg prune -v --list --keep-weekly=2 /home/karthick/borg/backup/

También puede aplicar la condición mencionada anteriormente solo a ciertos archivos. Por ejemplo, digamos que tengo 10 archivos en mi repositorio y deseo aplicar la regla de retención para archive7, entonces puedo usar el --prefix marca para establecer la condición.

$ borg prune -v --list --keep-weekly=2 --prefix='{archive name}' /home/karthick/borg/backup/

Antes de ejecutar prune comando, haga una ejecución en seco usando el --dry-run bandera.

13. Eliminar repositorio y archivar

Puede eliminar un archivo o todo el repositorio usando borg delete comando.

Para eliminar un solo archivo, debe proporcionar el nombre del archivo.

$ borg delete /home/karthick/borg/backup/::26-11-2021

Para eliminar todo el archivo, solo proporcione la ruta del repositorio. Al eliminar todo el directorio, se le pedirá que proporcione una confirmación.

$ borg delete /home/karthick/borg/backup/

14. Cambiar la contraseña de la clave

Hasta ahora he mostrado mi ejemplo sin aplicar ninguna encriptación al repositorio. Como se predijo en la sección inicial, puede inicializar un directorio con el cifrado habilitado y si repokey o keyfile se utiliza, le pedirá que configure la frase de contraseña opcionalmente.

$ borg init --encryption=repokey /home/karthick/borg/bkup/

De ahora en adelante, cada vez que intente realizar cualquier operación sobre este repositorio, debo proporcionar la frase de contraseña cada vez. Eche un vistazo a la imagen de abajo, estoy tratando de enumerar el repositorio y tengo que proporcionar una frase de contraseña para ello.

Ahora supongamos que desea cambiar la frase de contraseña, entonces puede hacerlo usando borg change-passphrase comando.

$ borg key change-passphrase -v /home/karthick/borg/bkup

También puede establecer la frase de contraseña usando variables de entorno.

$ BORG_PASSPHRASE="old password" BORG_NEW_PASSPHRASE="new password" borg key change-passphrase /home/karthick/borg/bkup

15. Clave de exportación e importación

Puede hacer una copia de seguridad de la clave del repositorio exportándola y luego importarla si es necesario.

Para exportar la clave, ejecute el siguiente comando:

$ borg key export bkup/ ./key
$ cat ./key

Para importar la clave al mismo repositorio, ejecute el siguiente comando:

$ borg key import bkup/ ./key

16. Trabajando con repositorios remotos

Todo lo que hemos visto hasta ahora es una copia de seguridad de sus datos en la misma máquina. Borg también admite repositorios remotos donde puede hacer una copia de seguridad de sus datos en cualquier máquina remota. Se debe poder acceder al host remoto a través de SSH.

Sintaxis:

$ borg init [email protected]:/path/to/repo

Ejemplo:

$ borg init [email protected]:/home/karthick/borg/bkup

Puede realizar todo tipo de operaciones similares a las que puede realizar con la copia de seguridad local. Por ejemplo, para restaurar la copia de seguridad, puede usar extract y también puedes usar el mount comando para montar un repositorio remoto.

Aquí, cuando apunte al directorio remoto, debe señalar el protocolo ssh como "ssh://[email protected]:port/path/to/repo ".

$ borg mount ssh://[email protected]:2222/home/karthick/borg/bkup /tmp/borg
$ borg extract ssh://[email protected]:2222/home/karthick/borg/bkup

17. Clientes de escritorio Borg GUI

Dado que BorgBackup es puramente una herramienta de línea de comandos, es casi imposible recordar todos los comandos. Algunos de ustedes pueden preferir una buena aplicación gráfica que les permita hacer una copia de seguridad de los datos a través de una interfaz gráfica. ¡No te preocupes!

Vorta es un cliente de escritorio GUI para BorgBackup. Con Vorta, puede integrar fácilmente la aplicación Borg en su entorno de escritorio favorito. No es necesario memorizar los comandos. ¡Todo se puede hacer a través de una interfaz gráfica simple!

Para obtener más detalles sobre cómo instalar y usar Vorta, consulte la siguiente guía.

  • Vorta:una interfaz gráfica para BorgBackup

18. Conclusión

En este artículo, hemos visto cómo usar borg para realizar copias de seguridad y restaurar sus datos en Linux. Borg tiene tantas características que puede comprender probando la herramienta. Una buena alternativa para borg será Timeshift para realizar una copia de seguridad a nivel del sistema y rsync para tomar archivos y directorios de usuario.


Linux
  1. MySQL:cómo hacer una copia de seguridad (volcar) y restaurar una base de datos usando mysqldump

  2. Cómo hacer una copia de seguridad y restaurar la configuración de la aplicación usando Mackup en un sistema Linux recién instalado

  3. Cómo hacer una copia de seguridad y restaurar el repositorio SVN en Linux

  4. Cómo archivar y comprimir archivos en Linux

  5. Cómo hacer una copia de seguridad y restaurar la base de datos en PostgreSQL

Cómo hacer una copia de seguridad y restaurar datos usando Ristic en Linux

Cómo hacer una copia de seguridad y restaurar el sistema Linux con Timeshift

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Cómo utilizar Timeshift para realizar copias de seguridad y restaurar Linux

Cómo clonar y restaurar una partición de Linux usando el comando dd

Cómo eliminar archivos y directorios usando la línea de comandos de Linux