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.