Dvoličnost – ustvarite šifrirane inkrementalne varnostne kopije v Linuxu


Izkušnje kažejo, da glede varnostnih kopij sistema nikoli ne morete biti preveč paranoični. Ko gre za zaščito in ohranjanje dragocenih podatkov, je najbolje, da se potrudite in poskrbite, da se lahko zanesete na svoje varnostne kopije, če se pojavi potreba.

Tudi danes, ko je neka strategija varnostnega kopiranja z uporabo lastnih orodij, da bi prihranili nekaj denarja in jo nato morda uporabili za nakup dodatnega prostora za shranjevanje ali pridobitev večjega VPS.

[ Morda vam bo všeč tudi: 25 izjemnih pripomočkov za varnostno kopiranje za sisteme Linux ]

Sliši se zanimivo? V tem članku vam bomo pokazali, kako uporabiti orodje, imenovano Duplicity, za varnostno kopiranje in šifriranje datotek in imenikov. Poleg tega nam bo uporaba inkrementalnih varnostnih kopij za to nalogo pomagala prihraniti prostor.

Se pravi, začnimo.

Namestitev orodja Duplicity Backup Tool v Linux

Če želite namestiti dvojnost v distribucije, ki temeljijo na RHEL, boste morali najprej omogočiti skladišče EPEL (ta korak lahko izpustite, če uporabljate samo Fedoro):

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

Potem teci,

# yum install duplicity

Za Debian in izpeljanke:

$ sudo apt update 
$ sudo apt install duplicity

Teoretično je podprtih veliko metod za povezovanje z datotečnim strežnikom, čeprav so bili v praksi doslej preizkušeni le ftp, HSI, WebDAV in Amazon S3.

Ko je namestitev končana, bomo uporabljali izključno sftp v različnih scenarijih, tako za varnostno kopiranje kot za obnovitev podatkov.

Naše testno okolje je sestavljeno iz škatle RHEL 8 (za varnostno kopiranje) in naprave Debian 11 (strežnik za varnostno kopiranje).

Ustvarjanje ključev SSH za prijavo brez gesla v oddaljeni strežnik

Začnimo z ustvarjanjem ključev SSH v našem polju RHEL in jih prenesemo na strežnik za varnostno kopiranje Debian.

Če uporabljate SSH na drugih vratih, potem spodnji ukaz predvideva, da demon sshd posluša vrata XXXXX v strežniku Debian. Zamenjajte AAA.BBB.CCC.DDD z dejanskim IP-jem oddaljenega strežnika.

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

Nato se prepričajte, da se lahko povežete z varnostnim strežnikom brez uporabe gesla:

# ssh [email 

Zdaj moramo ustvariti ključe GPG, ki bodo uporabljeni za šifriranje in dešifriranje naših podatkov:

# gpg2 --full-gen-key

Pozvani boste, da vnesete:

  • Vrsta ključa
  • Velikost ključa
  • Kako dolgo mora biti ključ veljaven
  • Geslo

Če želite ustvariti entropijo, potrebno za ustvarjanje ključev, se lahko prijavite v strežnik prek drugega terminalskega okna in izvedete nekaj nalog ali zaženete nekaj ukazov za ustvarjanje entropije (sicer boste morali na ta del postopek za dokončanje).

Ko so ključi ustvarjeni, jih lahko navedete na naslednji način:

# gpg --list-keys

Zgornji rumeno označen niz je znan kot ID javnega ključa in je zahtevani argument za šifriranje vaših datotek.

Ustvarjanje varnostne kopije Linuxa z Duplicity

Če želite začeti preprosto, naredimo varnostno kopijo le imenika /var/log, z izjemo /var/log/anaconda in /var/log/sa.

Ker je to naša prva varnostna kopija, bo polna. Naslednji zagoni bodo ustvarili inkrementalne varnostne kopije (razen če v spodnjem ukazu dodamo celotno možnost brez pomišljaja tik ob dvojnosti):

# 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

Prepričajte se, da ne zamudite dvojne poševnice v zgornjem ukazu! Uporabljajo se za označevanje absolutne poti do imenika z imenom /backups/rhel8 v polju za varnostno kopiranje in kjer bodo shranjene varnostne kopije.

Zamenjajte YourPassphraseHere, YourPublicKeyIdHere in RemoteServer z geslom, ki ste ga vnesli prej, ID-jem javnega ključa GPG in z IP-jem ali imenom gostitelja varnostnega strežnika.

Vaš rezultat mora biti podoben naslednji sliki:

Zgornja slika kaže, da je bilo skupno 86,3 MB varnostno kopiranih v 3,22 MB na destinaciji. Preklopimo na strežnik za varnostno kopiranje, da preverimo našo novo ustvarjeno varnostno kopijo:

Drugi zagon istega ukaza daje veliko manjšo velikost in čas varnostne kopije:

Obnavljanje varnostnih kopij Linuxa z uporabo Duplicity

Za uspešno obnovitev datoteke, imenika z njegovo vsebino ali celotne varnostne kopije cilj ne sme obstajati (dvojnost ne bo prepisala obstoječe datoteke ali imenika). Za pojasnitev izbrišemo dnevnik cron v polju CentOS:

# rm -f /var/log/cron

Sintaksa za obnovitev ene datoteke z oddaljenega strežnika je:

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

kje,

  • ime datoteke je datoteka, ki jo je treba ekstrahirati, z relativno potjo do imenika, ki je bil varnostno kopiran
  • /where/to/restore je imenik v lokalnem sistemu, kamor želimo obnoviti datoteko.

V našem primeru moramo za obnovitev glavnega dnevnika cron iz oddaljene varnostne kopije zagnati:

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

Dnevnik cron je treba obnoviti na želeni cilj.

Podobno lahko izbrišete imenik iz /var/log in ga obnovite z varnostno kopijo:

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

V tem primeru je treba poštni imenik obnoviti na prvotno lokacijo z vso vsebino.

Druge značilnosti Duplicity

Seznam arhiviranih datotek lahko kadar koli prikažete z naslednjim ukazom:

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

Izbrišite varnostne kopije, starejše od 6 mesecev:

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

Obnovite mojo datoteko v imeniku gacanepa, kot je bila pred 2 dnevoma in 12 urami:

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

V zadnjem ukazu lahko vidimo primer uporabe časovnega intervala (kot je določeno z -t): niz parov, kjer je vsak sestavljen iz števila, ki mu sledi eden od znakov s, m, h, D, W, M ali Y (ki označujejo sekunde, minute, ure, dneve, tedne, mesece ali leta).

Povzetek

V tem članku smo razložili, kako uporabljati Duplicity, pripomoček za varnostno kopiranje, ki zagotavlja šifriranje datotek in imenikov iz škatle. Zelo priporočam, da si ogledate spletno stran projekta dvojnosti za nadaljnjo dokumentacijo in primere.

Za vaše udobje branja smo zagotovili stran man o dvoličnosti v formatu PDF, ki je tudi popoln referenčni vodnik.

Če imate kakršna koli vprašanja ali pripombe, nam lahko sporočite.