maart 6, 2022

Hoe maak je een back-up van een Debian systeem met behulp van Backupninja

laatst bijgewerkt op 19 September 2020 door Gabriel Cánepa

voorzichtigheid of ervaring door een ramp kan elke systeembeheerder het belang leren van het nemen van frequente back-ups van systemen. U kunt dit doen door het schrijven van goede oude shell scripts, of met behulp van een (of meer) van de vele back-up tools beschikbaar voor de taak (bijvoorbeeld, Clonezilla, Duplicity). Dus hoe meer tools je leert kennen, hoe beter geïnformeerde beslissingen je neemt bij het implementeren van een back-upoplossing.

In dit artikel presenteren we Backupninja, een lichtgewicht en eenvoudig te configureren systeem back-up tool. Met behulp van programma ‘ s als rdiff-backup, duplicity, mysqlhotcopy en mysqldump, Backupninja biedt gemeenschappelijke back-up functies zoals remote, secure en incrementele bestandssysteem back-ups, versleutelde back-up, en MySQL/MariaDB database back-up. U kunt selectief status e-mail rapporten in te schakelen, en kan een back-up van algemene hardware en systeeminformatie ook. Een belangrijke kracht van Backupninja is een ingebouwde console-gebaseerde wizard (genaamd ninjahelper) waarmee u eenvoudig configuratiebestanden kunt maken voor verschillende back-upscenario ‘ s.

het nadeel, zogezegd, is dat Backupninja Andere hulpprogramma ‘ s nodig heeft om ten volle te kunnen profiteren van alle functies. Terwijl Backupninja ‘ s RPM-pakket beschikbaar is voor Red Hat-gebaseerde distributies, zijn de afhankelijkheden van Backupninja geoptimaliseerd voor Debian en zijn derivaten. Whereat wordt niet aangeraad om Backupninya voor Red Hat gebaseerde systemen te proberen.

in deze handleiding behandelen we de Backupninja installatie voor Debian-gebaseerde distributies.

Backupninja installeren

voer het volgende commando uit als root:

# aptitude install backupninja

tijdens de installatie worden meerdere bestanden en mappen aangemaakt:

  • /usr/sbin/backupninja is het belangrijkste Bash shell script.
  • /etc/cron.d/backupninja, geeft cron standaard opdracht om het hoofdscript één keer per uur uit te voeren.
  • /etc/logrotate.d/backupninja roteert de logs die door het programma zijn gemaakt.
  • /etc/backup.d/ is de map waarin de configuratiebestanden voor back-upacties zich bevinden.
  • /etc/backupninja.conf is het belangrijkste configuratiebestand met algemene opties. Het is goed becommentarieerd en legt elke optie in detail uit.
  • /usr/share/backupninja is de map waar de scripts die door Backupninja worden gebruikt zich bevinden (ook bekend als handlers). Dit zijn de scripts die verantwoordelijk zijn voor het doen van het eigenlijke werk. In deze map vindt u ook .helper bestanden, die worden gebruikt om ninjahelper menu ‘ s te configureren en in te stellen.
  • /usr/share/doc/backupninja/examples bevat sjablonen voor actieconfiguratiebestanden (het soort bestanden dat wordt aangemaakt via ninjahelper).

ninjahelper voor het eerst draaien

wanneer we ninjahelper proberen te starten, kunnen we zien dat een interne afhankelijkheid nodig kan zijn. Als u daarom wordt gevraagd, voert u yes in en drukt u op de ENTER-toets om dialog te installeren (een hulpmiddel dat gebruiksvriendelijke dialoogvensters van shell-scripts toont).

wanneer u op Enter drukt na het typen van yes, zal Backupninja het dialoogvenster installeren en het volgende scherm tonen zodra het klaar is.

Voorbeeld 1: back-up maken van Hardware en Systeeminfo

na het opstarten van ninjahelper zullen we een nieuwe back-upactie maken:

indien er geen hulpprogramma ‘ s geïnstalleerd zijn, zullen we de volgende schermen te zien krijgen. Negeer deze stap als deze pakketten al op je systeem zijn geïnstalleerd.

de volgende stap bestaat uit het selecteren van de items die u deel wilt uitmaken van deze back-up. De eerste vier zijn standaard geselecteerd, maar u kunt ze deselecteren door op de spatiebalk te drukken.

als u klaar bent, drukt u op OK om verder te gaan. U kunt kiezen of u het standaard configuratiebestand wilt gebruiken voor deze back-upactie (/etc/backup.d/10.sys), of of u een nieuwe wilt maken. In het laatste geval zal een nieuw bestand met dezelfde inhoud als het standaardbestand worden aangemaakt onder dezelfde map, maar met de naam 11.sys, enzovoort voor toekomstige systeem back-up acties. Merk op dat u het configuratiebestand kunt bewerken zodra het is gemaakt met de gewenste teksteditor.

Voorbeeld 2: Incrementele Rsync Pull back-up van een externe map

zoals u waarschijnlijk weet, wordt rsync veel gebruikt om bestanden en mappen over een netwerk te synchroniseren. In het volgende voorbeeld zullen we een aanpak bespreken om incrementele pull backups van een externe map met hardlinking te nemen om historische gegevens op te slaan en op te slaan in onze lokale bestandsserver. Deze aanpak zal ons helpen ruimte te besparen en de veiligheid op de server te verhogen.

Stap 1: Schrijf een aangepast script in de /etc/backup.d map met de volgende inhoud en chmod het naar 600. Merk op dat deze map, naast gewone configuratiebestanden, scripts kan bevatten die u wilt uitvoeren wanneer Backupninja wordt uitgevoerd, met het voordeel van het gebruik van variabelen die aanwezig zijn in het hoofdconfiguratiebestand.

# REMOTE USERuser=root# REMOTE HOSThost=dev1# REMOTE DIRECTORYremotedir=/home/gacanepa/# LOCAL DIRECTORYlocaldir=/home/gacanepa/backup.0# LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STOREDlocaldirold=/home/gacanepa/backup.1mv $localdir $localdirold# RSYNCrsync -av --delete --recursive --link-dest=$localdirold $host:$remotedir $localdir

in de bovenstaande configuratie wordt de optie --link-dest van rsync gebruikt om ongewijzigde bestanden (in alle attributen) van $localdir-old naar de doelmap ($localdir) te koppelen.

Stap 2: voordat Backupninja voor het eerst wordt uitgevoerd, is de bovenliggende map (/home/gacanepa in dit geval) leeg. De eerste keer dat we uitvoeren:

# backupninja -n

de backup.0 map wordt aangemaakt en later in het proces wordt de naam veranderd in backup.1.

de tweede keer dat we Backupninja uitvoeren, wordt backup.0 opnieuw aangemaakt en wordt backup.1 bewaard.

Stap 3: Controleer of de inhoud van backup.1 harde koppelingen zijn naar de bestanden in backup.0 door de respectieve inode-nummers en mapgroottes te vergelijken.

conclusie

Backupninja is niet alleen een klassiek back-upprogramma, maar ook een eenvoudig te configureren hulpprogramma. U kunt uw eigen handlers schrijven om Backupninja uit te voeren volgens de individuele configuratiebestanden in /etc/backup.d, en u kunt zelfs helpers schrijven voor ninjahelper om ze in de hoofdinterface op te nemen.

als u bijvoorbeeld een handler maakt met de naam xmodulo in /usr/share/backupninja, wordt standaard elk bestand met de extensie .xmodulo in /etc/backup.duitgevoerd. Als u besluit uw xmodulo handler toe te voegen aan ninjahelper, kunt u de bijbehorende helper schrijven als xmodulo.helper. Bovendien, als je wilt dat Backupninja een willekeurig script uitvoert, voeg het dan toe aan /etc/backup.d en je bent klaar om te gaan. Refereer naar deze backupninja tutorial voor details over het maken van een aangepaste back-up plan.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.