Duplicity - Erstellt verschlësselte inkrementelle Backups op Linux


D'Erfahrung weist datt Dir ni ze paranoid ka sinn iwwer Systembackups. Wann et drëm geet wäertvoll Donnéeën ze schützen an ze konservéieren, ass et am beschten déi extra Meile ze goen a sécherzestellen datt Dir op Äre Backups ofhängeg kënnt wann de Besoin entsteet.

Och haut, wann e puer Backupstrategie Ären eegene Tools benotzt fir e puer Suen ze spueren an da vläicht benotzt fir extra Späichere ze kafen oder e méi grousse VPS ze kréien.

[ Dir kënnt och gär hunn: 25 Outstanding Backup Utilities for Linux Systems ]

Kléngt interessant? An dësem Artikel wäerte mir Iech weisen wéi Dir en Tool mam Numm Duplicity benotzt fir Dateien an Verzeichnisser ze backen an ze verschlësselen. Zousätzlech, benotzt inkrementell Backups fir dës Aufgab hëlleft eis Plaz ze spueren.

Dat gesot, loosst eis ufänken.

Installéiert Duplicity Backup Tool op Linux

Fir Duplizitéit an RHEL-baséiert Distros z'installéieren, musst Dir als éischt den EPEL Repository aktivéieren (Dir kënnt dëse Schrëtt ausgoen wann Dir Fedora selwer benotzt):

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

Dann lafen,

# yum install duplicity

Fir Debian an Derivate:

$ sudo apt update 
$ sudo apt install duplicity

An der Theorie gi vill Methoden fir mat engem Dateiserververbindung ënnerstëtzt, obwuel nëmmen ftp, HSI, WebDAV, an Amazon S3 an der Praxis bis elo getest goufen.

Wann d'Installatioun fäerdeg ass, wäerte mir exklusiv sftp a verschiddene Szenarie benotzen, souwuel fir d'Donnéeën ze backen an ze restauréieren.

Eis Testëmfeld besteet aus enger RHEL 8 Box (fir ze backen) an enger Debian 11 Maschinn (Backup Server).

Erstellt SSH Keys fir Passwuertlos Login op Remote Server

Loosst eis ufänken andeems Dir d'SSH Schlësselen an eiser RHEL Box erstallt an se op den Debian Backup Server transferéiert.

Wann Dir SSH op engem aneren Hafen laaft, da gëtt de Kommando ënnen ugeholl datt den sshd Daemon um Port XXXXX am Debian Server lauschtert. Ersetzen AAA.BBB.CCC.DDD mat der aktueller IP vum Fernserver.

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

Da sollt Dir sécher sinn datt Dir mam Backup-Server konnektéiere kënnt ouni e Passwuert ze benotzen:

# ssh [email 

Elo musse mir d'GPG Schlësselen erstellen, déi fir d'Verschlësselung an d'Entschlësselung vun eisen Donnéeën benotzt ginn:

# gpg2 --full-gen-key

Dir wäert gefuerdert ginn fir anzeginn:

  • Zort Schlëssel
  • Schlësselgréisst
  • Wéi laang soll de Schlëssel valabel sinn
  • E Passphrase

Fir d'Entropie ze kreéieren déi néideg ass fir d'Schafung vun de Schlësselen, kënnt Dir Iech op de Server iwwer eng aner Terminalfenster aloggen an e puer Aufgaben ausféieren oder e puer Kommandoen ausféieren fir Entropie ze generéieren (soss musst Dir laang op dësen Deel waarden. de Prozess fäerdeg ze maachen).

Wann d'Schlësselen generéiert sinn, kënnt Dir se wéi follegt oplëschten:

# gpg --list-keys

D'String, déi a giel uewen markéiert ass, ass bekannt als ëffentlech Schlëssel ID, an ass e gefrot Argument fir Är Dateien ze verschlësselen.

Erstellt e Linux Backup mat Duplicity

Fir einfach unzefänken, loosst eis nëmmen den /var/log Verzeichnis backen, mat Ausnam vun /var/log/anaconda an /var/log/sa.

Well dëst eisen éischte Backup ass, wäert et voll sinn. Déi spéider Runen erstellen inkrementell Backups (ausser mir addéieren déi komplett Optioun ouni Bindestrecken direkt nieft Duplizitéit am Kommando hei ënnen):

# 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

Vergewëssert Iech datt Dir den duebelen Slash am uewe genannte Kommando net verpasst! Si gi benotzt fir en absolute Wee zu engem Verzeichnis mam Numm /backups/rhel8 an der Backupbox unzeginn an ass wou d'Backupdateien gespäichert ginn.

Ersetzen YourPassphraseHere, YourPublicKeyIdHere, a RemoteServer mat der Passphrase, déi Dir virdru aginn hutt, der GPG Public Key ID, respektiv mam IP oder Hostnumm vum Backupserver.

Är Ausgab soll ähnlech wéi déi folgend Bild sinn:

D'Bild hei uewen weist datt insgesamt 86,3 MB an eng 3,22 MB an der Destinatioun gelagert gouf. Loosst eis op de Backup-Server wiesselen fir eis nei erstallt Backup ze kontrolléieren:

Eng zweet Laf vum selwechte Kommando gëtt eng vill méi kleng Backupgréisst an Zäit:

Linux Backups restauréieren mat Duplicity

Fir e Fichier erfollegräich ze restauréieren, e Verzeechnes mat sengem Inhalt, oder de ganze Backup, däerf d'Destinatioun net existéieren (Duplizitéit iwwerschreift net eng existent Datei oder Verzeechnes). Fir ze klären, loosst eis de Cron Log an der CentOS Këscht läschen:

# rm -f /var/log/cron

D'Syntax fir eng eenzeg Datei vum Remote Server ze restauréieren ass:

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

wou,

  • Dateiname ass de Fichier fir extrahéiert ze ginn, mat engem relativen Wee zum Verzeichnis dee gebackupt gouf
  • /wou/zu/restauréieren ass den Dossier am lokalen System wou mir d'Datei wëllen restauréieren.

An eisem Fall, fir de Cron Main Log aus dem Remote Backup ze restauréieren, musse mir lafen:

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

De Cron Log soll op déi gewënscht Destinatioun restauréiert ginn.

Wéi och ëmmer, fillt Iech gratis e Verzeechnes vun /var/log ze läschen an et mat dem Backup ze restauréieren:

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

An dësem Beispill sollt de Mailverzeichnis op seng ursprénglech Plaz mat all sengem Inhalt restauréiert ginn.

Aner Funktiounen vun Duplicity

Zu all Moment kënnt Dir d'Lëscht vun archivéierten Dateien mat dem folgenden Kommando weisen:

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

Läschen Backups méi al wéi 6 Méint:

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

Restauréiert meng Datei am Verzeechnes gacanepa wéi et virun 2 Deeg an 12 Stonnen war:

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

Am leschte Kommando kënne mir e Beispill vun der Notzung vum Zäitintervall gesinn (wéi spezifizéiert duerch -t): eng Serie vu Pairen, wou jidderee besteet aus enger Zuel gefollegt vun engem vun de Charaktere s, m, h, D, W, M oder Y (respektiv Sekonnen, Minutten, Stonnen, Deeg, Wochen, Méint oder Joer).

Resumé

An dësem Artikel hu mir erkläert wéi Dir Duplicity benotzt, e Backup-Utility dat Verschlësselung fir Dateien a Verzeichnisser aus der Këscht ubitt. Ech recommandéieren Iech op der Websäit vum Duplicity Projet ze kucken fir weider Dokumentatioun a Beispiller.

Mir hunn eng Man Säit vun Duplizitéit am PDF Format zur Verfügung gestallt fir Är Liesbequemlechkeet, ass och e komplette Referenzguide.

Fillt eis gratis Bescheed wann Dir Froen oder Bemierkungen hutt.