Ervaring leert dat je nooit te paranoïde kunt zijn over systeemback-ups. Als het gaat om het beschermen en behouden van kostbare gegevens, is het het beste om een stapje verder te gaan en ervoor te zorgen dat je kunt vertrouwen op je back-ups als dat nodig is.
Zelfs vandaag de dag, wanneer sommige cloud- en hostingproviders geautomatiseerde back-ups voor VPS’en aanbieden tegen relatief lage kosten, is het verstandig om je eigen back-upstrategie te maken met behulp van je eigen tools om wat geld te besparen en het misschien te gebruiken om extra opslagruimte te kopen of een grotere VPS te krijgen.
Klinkt interessant? In dit artikel laten we je zien hoe je een tool genaamd Duplicity kunt gebruiken om bestanden en mappen te back-uppen en te versleutelen. Bovendien helpt het gebruik van incrementele back-ups voor deze taak ons om ruimte te besparen.
Dat gezegd hebbende, laten we beginnen.
Duplicity Backup Tool installeren in Linux
Om duplicity te installeren in RHEL-gebaseerde distributies, moet je eerst het EPEL-repository inschakelen (je kunt deze stap overslaan als je Fedora zelf gebruikt).
Op RHEL 9:
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
Op CentOS 9, AlmaLinux 9, Rocky Linux 9:
dnf config-manager --set-enabled crb dnf install epel-release
Op RHEL 8:
subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Op CentOS 9, AlmaLinux 9, Rocky Linux 9:
dnf config-manager --set-enabled powertools dnf install epel-release
Voer vervolgens uit,
dnf install duplicity
Voor Debian-gebaseerde distributies zoals Ubuntu en Linux Mint.
sudo apt update sudo apt install duplicity
In theorie worden veel methoden voor verbinding met een bestandsserver ondersteund, hoewel alleen ssh/scp/sftp, lokale bestandsbereik, rsync, ftp, HSI, WebDAV en Amazon S3 tot nu toe getest zijn in de praktijk.
Zodra de installatie is voltooid, zullen we uitsluitend sftp gebruiken in verschillende scenario’s, zowel om gegevens te backuppen als te herstellen.
Ons testomgeving bestaat uit een RHEL 8 box (te backuppen) en een Debian 11 machine (backupserver).
Het aanmaken van SSH-sleutels voor wachtwoordloos inloggen op een externe server
Laten we beginnen met het aanmaken van de SSH-sleutels op onze RHEL-machine en deze over te zetten naar de Debian back-upserver.
Als je SSH uitvoert op een andere poort, dan veronderstelt het onderstaande commando dat de sshd-daemon luistert op poort XXXXX op de Debian-server. Vervang AAA.BBB.CCC.DDD door het werkelijke IP-adres van de externe server.
ssh-keygen -t rsa ssh-copy-id [email protected] ssh-copy-id -p XXXXX [email protected]
Vervolgens moet je ervoor zorgen dat je kunt verbinden met de back-upserver zonder een wachtwoord te gebruiken:
ssh [email protected]

Nu moeten we de GPG-sleutels aanmaken die zullen worden gebruikt voor de versleuteling en ontsleuteling van onze gegevens:
gpg2 --full-gen-key
Je wordt gevraagd om in te voeren:
- Soort sleutel
- Sleutelgrootte
- Hoe lang de sleutel geldig moet zijn
- A passphrase

Om de benodigde entropie te genereren voor het aanmaken van de sleutels, kun je inloggen op de server via een ander terminalvenster en een paar taken uitvoeren of enkele opdrachten uitvoeren om entropie te genereren (anders moet je lang wachten totdat dit deel van het proces is voltooid).
Zodra de sleutels zijn gegenereerd, kun je ze als volgt weergeven:
gpg --list-keys

De string hierboven gemarkeerd in het geel staat bekend als de openbare sleutel-ID en is een gevraagd argument om uw bestanden te versleutelen.
Het maken van een Linux-back-up met Duplicity
Om eenvoudig te beginnen, laten we alleen de map /var/log back-uppen, met uitzondering van /var/log/anaconda en /var/log/sa.
Aangezien dit onze eerste back-up is, zal dit een volledige zijn. Volgende uitvoeringen zullen incrementele back-ups maken (tenzij we de volledige optie toevoegen zonder streepjes direct na duplicity in het onderstaande commando):
PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email protected]//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
Zorg ervoor dat je de dubbele schuine streep niet mist in het bovenstaande commando! Deze worden gebruikt om een absoluut pad aan te geven naar een map met de naam /backups/rhel8 in de back-upbox waar de back-upbestanden worden opgeslagen.
Vervang YourPassphraseHere, YourPublicKeyIdHere, en RemoteServer door het wachtwoord dat u eerder heeft ingevoerd, de GPG openbare sleutel-ID en met het IP-adres of de hostnaam van de back-upserver, respectievelijk.
Uw uitvoer zou vergelijkbaar moeten zijn met de volgende afbeelding:

De bovenstaande afbeelding geeft aan dat in totaal 86,3 MB is geback-upt in een 3,22 MB op de bestemming. Laten we overschakelen naar de back-upserver om onze zojuist gemaakte back-up te controleren:

A second run of the same command yields a much smaller backup size and time:

Het herstellen van Linux-back-ups met Duplicity
Om succesvol een bestand, een map met de inhoud ervan, of de hele back-up te herstellen, mag de bestemming niet bestaan (duplicity zal geen bestaand bestand of map overschrijven). Om dit te verduidelijken, laten we het logbestand cron in de CentOS-box verwijderen:
rm -f /var/log/cron
De syntaxis om een enkel bestand van de externe server te herstellen is:
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename
waarbij,
- bestandsnaam het te extraheren bestand is, met een relatief pad naar de directory die is geback-upt
- /waar/te/herstellen is de directory op het lokale systeem waar we het bestand willen herstellen.
In ons geval, om het hoofdlogboek van de cron van de externe back-up te herstellen moeten we het volgende uitvoeren:
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email protected]:XXXXX//backups/rhel8 /var/log/cron
Het cron-logboek moet worden hersteld naar de gewenste bestemming.
Vergelijkbaar hiermee, voel je vrij om een directory te verwijderen van /var/log en het te herstellen met behulp van de back-up:
rm -rf /var/log/mail PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email protected]:XXXXX//backups/rhel8 /var/log/mail
In dit voorbeeld moet de mail directory worden hersteld naar zijn oorspronkelijke locatie met al zijn inhoud.
Duplicity Commando Gebruik
Op elk moment kunt u de lijst met gearchiveerde bestanden weergeven met het volgende commando:
duplicity list-current-files sftp://[email protected]:XXXXX//backups/rhel8
Verwijder back-ups ouder dan 6 maanden:
duplicity remove-older-than 6M sftp://[email protected]:XXXXX//backups/rhel8
Herstel mijnbestand binnen de directory gacanepa zoals het was 2 dagen en 12 uur geleden:
duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email protected]:XXXXX//remotedir/backups /home/gacanepa/myfile
In het laatste commando kunnen we een voorbeeld zien van het gebruik van het tijdsinterval (zoals gespecificeerd door -t): een reeks paren waarbij elk bestaat uit een getal gevolgd door een van de tekens s, m, h, D, W, M, of J (aangevend seconden, minuten, uren, dagen, weken, maanden, of jaren respectievelijk).
Samenvatting
In dit artikel hebben we uitgelegd hoe je Duplicity gebruikt, een back-up hulpprogramma dat standaard versleuteling biedt voor bestanden en mappen. Ik raad je ten zeerste aan om een kijkje te nemen op de website van het Duplicity-project voor verdere documentatie en voorbeelden.
We hebben een man-pagina van Duplicity in PDF-formaat verstrekt voor jouw leesgemak, het is ook een volledige referentiegids.
Voel je vrij om ons te laten weten als je vragen of opmerkingen hebt.
Source:
https://www.tecmint.com/duplicity-create-encrypted-incremental-linux-backup/