Duplicitat: creeu còpies de seguretat incrementals xifrades a Linux


L'experiència demostra que mai no pots ser massa paranoic amb les còpies de seguretat del sistema. Quan es tracta de protegir i preservar dades precioses, el millor és fer un esforç addicional i assegurar-vos que podeu dependre de les vostres còpies de seguretat si és necessari.

Fins i tot avui, quan hi ha una estratègia de còpia de seguretat utilitzant les vostres pròpies eines per estalviar una mica de diners i després potser utilitzar-lo per comprar emmagatzematge addicional o obtenir un VPS més gran.

[ També us pot agradar: 25 utilitats de còpia de seguretat destacades per a sistemes Linux ]

Sona interessant? En aquest article, us mostrarem com utilitzar una eina anomenada Duplicitat per fer còpies de seguretat i xifrar fitxers i directoris. A més, utilitzar còpies de seguretat incrementals per a aquesta tasca ens ajudarà a estalviar espai.

Dit això, comencem.

Instal·lació de l'eina de còpia de seguretat de Duplicity a Linux

Per instal·lar la duplicitat a les distribucions basades en RHEL, primer haureu d'habilitar el repositori EPEL (podeu ometre aquest pas si feu servir Fedora):

# yum update 
# yum install epel-release
OR
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Llavors corre,

# yum install duplicity

Per a Debian i derivats:

$ sudo apt update 
$ sudo apt install duplicity

En teoria, s'admeten molts mètodes per connectar-se a un servidor de fitxers, tot i que fins ara només s'han provat a la pràctica ftp, HSI, WebDAV i Amazon S3.

Un cop finalitzada la instal·lació, utilitzarem exclusivament sftp en diversos escenaris, tant per fer una còpia de seguretat com per restaurar les dades.

El nostre entorn de prova consta d'una caixa RHEL 8 (que es farà una còpia de seguretat) i una màquina Debian 11 (servidor de còpia de seguretat).

Creació de claus SSH per a l'inici de sessió sense contrasenya al servidor remot

Comencem creant les claus SSH a la nostra caixa RHEL i transferint-les al servidor de còpia de seguretat de Debian.

Si esteu executant SSH en un port diferent, l'ordre següent suposa que el dimoni sshd està escoltant al port XXXXX del servidor Debian. Substituïu AAA.BBB.CCC.DDD per la IP real del servidor remot.

# ssh-keygen -t rsa
# ssh-copy-id [email 
# ssh-copy-id -p XXXXX [email   

Aleshores, hauríeu d'assegurar-vos que us podeu connectar al servidor de còpia de seguretat sense utilitzar una contrasenya:

# ssh [email 

Ara hem de crear les claus GPG que s'utilitzaran per xifrar i desxifrar les nostres dades:

# gpg2 --full-gen-key

Se us demanarà que introduïu:

  • Tipus de clau
  • Mida de la clau
  • Quant de temps hauria de ser vàlida la clau
  • Una frase de contrasenya

Per crear l'entropia necessària per a la creació de les claus, podeu iniciar sessió al servidor a través d'una altra finestra de terminal i realitzar algunes tasques o executar algunes ordres per generar entropia (en cas contrari, haureu d'esperar molt de temps a aquesta part de el procés per acabar).

Un cop generades les claus, podeu enumerar-les de la següent manera:

# gpg --list-keys

La cadena destacada en groc a dalt es coneix com a ID de clau pública i és un argument sol·licitat per xifrar els vostres fitxers.

Creació d'una còpia de seguretat de Linux amb Duplicity

Per començar de manera senzilla, només fem una còpia de seguretat del directori /var/log, amb l'excepció de /var/log/anaconda i /var/log/sa.

Com que aquesta és la nostra primera còpia de seguretat, serà completa. Les execucions posteriors crearan còpies de seguretat incrementals (tret que afegim l'opció completa sense guions just al costat de la duplicitat a l'ordre següent):

# PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email //backups/rhel8
OR
# PASSPHRASE="YourPassphraseHere" duplicity --encrypt-key YourPublicKeyIdHere --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email :XXXXX//backups/rhel8

Assegureu-vos que no us perdeu la doble barra a l'ordre anterior! S'utilitzen per indicar una ruta absoluta a un directori anomenat /backups/rhel8 a la caixa de còpia de seguretat i és on s'emmagatzemaran els fitxers de còpia de seguretat.

Substituïu YourPassphraseHere, YourPublicKeyIdHere i RemoteServer per la frase de contrasenya que heu introduït anteriorment, l'identificador de clau pública GPG i amb la IP o el nom d'amfitrió del servidor de còpia de seguretat, respectivament.

La vostra sortida hauria de ser similar a la imatge següent:

La imatge de dalt indica que s'ha fet una còpia de seguretat de 86,3 MB en un total de 3,22 MB a la destinació. Canviem al servidor de còpia de seguretat per comprovar la nostra còpia de seguretat acabada de crear:

Una segona execució de la mateixa ordre produeix una mida i un temps de còpia de seguretat molt més petits:

Restauració de còpies de seguretat de Linux mitjançant Duplicity

Per restaurar amb èxit un fitxer, un directori amb el seu contingut o la còpia de seguretat sencera, la destinació no ha d'existir (la duplicació no sobreescriurà un fitxer o directori existent). Per aclarir, suprimim el registre de cron al quadre CentOS:

# rm -f /var/log/cron

La sintaxi per restaurar un únic fitxer des del servidor remot és:

# PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://[email //backups/rhel8 /where/to/restore/filename

on,

  • filename és el fitxer que s'ha d'extreure, amb un camí relatiu al directori del qual s'ha fet una còpia de seguretat
  • /on/a/restore és el directori del sistema local on volem restaurar el fitxer.

En el nostre cas, per restaurar el registre principal de cron des de la còpia de seguretat remota, hem d'executar:

# PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email :XXXXX//backups/rhel8 /var/log/cron

El registre cron s'ha de restaurar a la destinació desitjada.

De la mateixa manera, no dubteu a suprimir un directori de /var/log i restaurar-lo mitjançant la còpia de seguretat:

# rm -rf /var/log/mail
# PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email :XXXXX//backups/rhel8 /var/log/mail

En aquest exemple, el directori de correu s'ha de restaurar a la seva ubicació original amb tot el seu contingut.

Altres característiques de Duplicity

En qualsevol moment podeu mostrar la llista de fitxers arxivats amb l'ordre següent:

# duplicity list-current-files sftp://[email :XXXXX//backups/rhel8

Suprimeix les còpies de seguretat de més de 6 mesos:

# duplicity remove-older-than 6M sftp://[email :XXXXX//backups/rhel8

Restaura el meu fitxer dins del directori gacanepa tal com era fa 2 dies i 12 hores:

# duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email :XXXXX//remotedir/backups /home/gacanepa/myfile

A l'última comanda, podem veure un exemple de l'ús de l'interval de temps (tal com s'especifica per -t): una sèrie de parells on cadascun consta d'un nombre seguit d'un dels caràcters s, m, h, D, W, M o Y (indicant segons, minuts, hores, dies, setmanes, mesos o anys respectivament).

Resum

En aquest article, hem explicat com utilitzar Duplicity, una utilitat de còpia de seguretat que proporciona xifratge per a fitxers i directoris de manera immediata. Us recomano que feu una ullada al lloc web del projecte duplicitat per obtenir més documentació i exemples.

Hem proporcionat una pàgina de manual de duplicitat en format PDF per a la vostra comoditat de lectura, també és una guia de referència completa.

No dubteu a fer-nos saber si teniu cap pregunta o comentari.