Duplicity – Kreirajte šifrirane inkrementalne sigurnosne kopije u Linuxu


Iskustvo pokazuje da nikada ne možete biti previše paranoični u pogledu pravljenja rezervnih kopija sistema. Kada je u pitanju zaštita i očuvanje dragocjenih podataka, najbolje je učiniti sve i osigurati da se možete osloniti na svoje sigurnosne kopije ako se ukaže potreba.

Čak i danas, kada neki provajderi oblaka i hostinga nude automatizirane sigurnosne kopije za VPS-ove po relativno niskoj cijeni, dobro ćete napraviti svoju vlastitu strategiju sigurnosnog kopiranja koristeći svoje alate kako biste uštedjeli nešto novca, a zatim ga možda iskoristili za kupovinu dodatnog prostora za pohranu ili nabavite veći VPS.

Zvuči zanimljivo? U ovom članku ćemo vam pokazati kako koristiti alat pod nazivom Duplicity za sigurnosno kopiranje i šifriranje datoteka i direktorija. Osim toga, korištenje inkrementalnih sigurnosnih kopija za ovaj zadatak pomoći će nam da uštedimo prostor.

Rečeno je, počnimo.

Instaliranje Duplicity Backup alata u Linux

Da biste instalirali dupličnost u RHEL-bazirane distribucije, prvo ćete morati omogućiti EPEL spremište (možete izostaviti ovaj korak ako koristite samu Fedora):

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

onda trči,

yum install duplicity

Za Debian i derivate:

sudo apt update 
sudo apt install duplicity

U teoriji, podržane su mnoge metode za povezivanje sa serverom datoteka iako su u praksi do sada testirani samo ssh/scp/sftp, lokalni pristup datotekama, rsync, ftp, HSI, WebDAV i Amazon S3.

Kada se instalacija završi, isključivo ćemo koristiti sftp u različitim scenarijima, kako za izradu sigurnosnih kopija tako i za vraćanje podataka.

Naše testno okruženje sastoji se od RHEL 8 kutije (koja treba napraviti sigurnosnu kopiju) i Debian 11 stroja (server sigurnosne kopije).

Kreiranje SSH ključeva za prijavu bez lozinke na udaljeni server

Počnimo kreiranjem SSH ključeva u našem RHEL kutiji i prijenosom ih na Debian backup server.

Ako koristite SSH na drugom portu, donja naredba pretpostavlja da demon sshd sluša port XXXXXX na Debian poslužitelju. Zamijenite AAA.BBB.CCC.DDD stvarnim IP-om udaljenog servera.

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

Zatim se uvjerite da se možete povezati na backup server bez korištenja lozinke:

ssh [email 

Sada moramo kreirati GPG ključeve koji će se koristiti za šifriranje i dešifriranje naših podataka:

gpg2 --full-gen-key

Od vas će biti zatraženo da unesete:

  • Vrsta ključa
  • Veličina ključa
  • Koliko dugo ključ treba da važi
  • Pristupna fraza

Da biste kreirali entropiju potrebnu za kreiranje ključeva, možete se prijaviti na server preko drugog prozora terminala i izvršiti nekoliko zadataka ili pokrenuti neke komande za generiranje entropije (inače ćete morati dugo čekati na ovaj dio proces da se završi).

Nakon što su ključevi generirani, možete ih navesti na sljedeći način:

gpg --list-keys

Niz koji je gore označen žutom bojom poznat je kao ID javnog ključa i traženi je argument za šifriranje vaših datoteka.

Kreiranje Linux sigurnosne kopije uz Duplicity

Za početak jednostavno, napravimo sigurnosnu kopiju /var/log direktorija, s izuzetkom /var/log/anaconda i /var/log/sa jako>.

Pošto nam je ovo prva rezervna kopija, bit će puna. Naredna pokretanja će stvoriti inkrementalne sigurnosne kopije (osim ako ne dodamo punu opciju bez crtica odmah pored duplikata u naredbi ispod):

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://root@RemoteServer:XXXXX//backups/rhel8

Pazite da ne propustite dvostruku kosu crtu u gornjoj naredbi! Koriste se za označavanje apsolutne putanje do direktorija pod nazivom /backups/rhel8 u kutiji za sigurnosnu kopiju i je mjesto gdje će se pohranjivati datoteke sigurnosne kopije.

Zamijenite YourPassphraseHere, YourPublicKeyIdHere, i RemoteServer pristupnom frazom koju ste ranije unijeli, ID-om javnog ključa GPG-a i IP-om ili imenom hosta rezervne kopije servera, respektivno.

Vaš izlaz bi trebao biti sličan sljedećoj slici:

Slika iznad pokazuje da je rezervna kopija od ukupno 86,3 MB napravljena u 3,22 MB na odredištu. Prijeđimo na backup server da provjerimo našu novostvorenu sigurnosnu kopiju:

Drugo pokretanje iste naredbe daje mnogo manju veličinu sigurnosne kopije i vrijeme:

Vraćanje Linux rezervnih kopija koristeći Duplicity

Da biste uspješno vratili datoteku, direktorij s njegovim sadržajem ili cijelu sigurnosnu kopiju, odredište ne smije postojati (dvostrukost neće prebrisati postojeću datoteku ili direktorij). Da pojasnimo, izbrišemo cron log u CentOS kutiji:

rm -f /var/log/cron

Sintaksa za vraćanje jedne datoteke sa udaljenog servera je:

PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename

gdje,

  • ime datoteke je datoteka koja se izdvaja, s relativnom putanjom do direktorija za koji je napravljena sigurnosna kopija
  • /where/to/restore je direktorij u lokalnom sistemu u koji želimo vratiti datoteku.

U našem slučaju, da bismo vratili glavni dnevnik cron-a iz udaljene sigurnosne kopije, moramo pokrenuti:

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

Cron dnevnik treba vratiti na željeno odredište.

Isto tako, slobodno izbrišite direktorij iz /var/log i vratite ga pomoću sigurnosne kopije:

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

U ovom primjeru, direktorij mail bi trebao biti vraćen na prvobitnu lokaciju sa svim njegovim sadržajem.

Ostale karakteristike Duplicity

U bilo kom trenutku možete prikazati listu arhiviranih datoteka sljedećom komandom:

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

Izbrišite sigurnosne kopije starije od 6 mjeseci:

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

Vratite myfile unutar direktorija gacanepa kako je bio prije 2 dana i 12 sati:

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

U posljednjoj naredbi možemo vidjeti primjer upotrebe vremenskog intervala (kako je navedeno sa -t): niz parova gdje se svaki sastoji od broja nakon kojeg slijedi jedan od znakova < jak>s, m, h, D, W, M, ili Y (koji označava sekunde, minute, sate, dane, sedmice, mjesece ili godine).

Sažetak

U ovom članku smo objasnili kako koristiti Duplicity, uslužni program za pravljenje rezervnih kopija koji omogućava šifriranje datoteka i direktorija izvan kutije. Toplo preporučujem da pogledate web stranicu projekta dupličnosti za dalju dokumentaciju i primjere.

Dali smo man stranicu dvoličnosti u PDF formatu za vašu udobnost čitanja, također je kompletan referentni vodič.

Slobodno nam se javite ako imate bilo kakvih pitanja ili komentara.