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.