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.