Ubuntu Backup mit BorgBackup – Teil 2

Nachdem wir im ersten Teil dieser kleinen Reihe ein erstes Backup eingerichtet haben, kümmern wir uns heute um die erweiterten Optionen und Möglichkeiten mit Borg.

Veraltete Backups löschen

Damit die Daten auf dem Backup-Server nicht zu viel werden, sollten Backup mit einem gewissen Alter automatisch wieder entfernt werden. Dieser Vorgang wird bei Borg prune genannt und kann ebenfalls automatisch durchgeführt werden.

#!/bin/bash

ROOTDIR="/home/borgbackup/backups/"
LOG="prune-backup.log"

# Logging
exec > >(tee -i ${LOG})
exec 2>&1

echo "###### Pruning backup for <ServerA> on $(date) ######"

borg prune --dry-run -v ${ROOTDIR}<ServerA> \
--keep-daily=7 \
--keep-weekly=4 \
--keep-monthly=6

echo "###### Pruning finished ######"

Dieses Beispiel sucht in dem angegebenen Verzeichnis nach Backups und lässt sieben tägliche Backup, vier wöchentliche und sechs monatliche Backups stehen. Der Rest wird automatisch gelöscht und der Speicherplatz wieder freigegeben.

Denken Sie daran, dass Skript ausführbar zu machen, da sonst ein Aufruf nicht funktioniert.

chmod u+x /home/borgbackup/prune-backup.sh

Automatisierung des Aufräum-Vorgangs

Erstellen Sie einen neuen Cronjob, der die Aufräum-Aktion automatisch im Hintergrund erledigt. Achten Sie darauf, dass dieser Job nicht zu Zeiten passiert, an denen eine Sicherung erstellt wird, da es sonst zu Problemen kommen kann. Einen Job erstellen können Sie per

crontab -e

Tragen Sie hier z.B. eine Ausführung morgens um sechs Uhr ein.

0 6 * * *  /home/borgbackup/prune-backup.sh > /dev/null 2>&1

Überprüfen Sie am besten nach ein oder zwei Tagen, ob das Logfile Aktivitäten zeigt.

Kleiner Tipp: Ich benutze gerne den Crontab Guru 🙂

Die Aktivierung einer Mail-Benachrichtigung

Die Backup- und Aufräum-Skripte können auch Benachrichtigungen per Mail schicken. Dies sorgt dafür, dass man aktiv sieht, was in der Nacht passiert ist und ob das Backup erfolgreich erstellt wurde.

Die Installation der benötigten Pakete

Im ersten Schritt müssen die benötigten Pakete installiert werden.

apt install ssmtp mailutils -y

Anpassung der Konfiguration

Nun muss die Konfigurationsdatei von sSMTP angepasst werden, damit über einen externen SMTP-Server die Mails versendet werden können.

	#
	# Config file for sSMTP sendmail
	#
	# The person who gets all mail for userids < 1000
	# Make this empty to disable rewriting.
	root=<Name>@gmail.com

	# The place where the mail goes. The actual machine name is required no
	# MX records are consulted. Commonly mailhosts are named mail.domain.com
	mailhub=smtp.gmail.com:587

	# Where will the mail seem to come from?
	rewriteDomain=gmail.com

	# The full hostname
	hostname=localhost

	# Are users allowed to set their own From: address?
	# YES - Allow the user to specify their own From: address
	# NO - Use the system generated From: address
	FromLineOverride=YES

	AuthUser=<Name>@gmail.com
	AuthPass=<Passwort>
	UseSTARTTLS=YES

Ein Nachteil dieser Variante ist, dass das Mail-Kennwort hier im Plaintext auf dem Server gespeichert wird. Nutzen Sie am besten ein eigenes Postfach für diese Emails und aktivieren Sie die 2-Faktor-Authentifizierung, damit das Konto nicht so einfach missbraucht werden kann.

Der Eintrag hostname=localhost war notwendig, da sonst keine Emails über Gmail gesendet werden konnten

Erlauben, wer Emails senden darf

Damit nur definierte Benutzer Emails versenden dürfen, muss dies in der Datei revaliases eingetragen werden.

root:<Name>@gmail.com:smtp.gmail.com:587

Test des Email Versands

Nun kann der Versand von Emails getestet werden

echo "Inhalt" | mail -s "Betreff" <Name>@gmail.com

Anpassen des Benutzernamen

Wird nun diese Test-Mail per root-Benutzer verschickt, sieht dies z.B. in einem Outlook wie folgt aus

Soll ein sprechender Namen vergeben werden, so kann dies in der Datei passwd gemacht werden. Hier muss bei dem Benutzer root der fünfte Eintrag angepasst werden.

Achtung, ändern Sie nur den fünften Eintrag, nichts weiteres. Andere Anpassungen können dazu führen, dass augenblicklich alles in Flammen aufgeht und verglüht!

root:x:0:0:borg@backupserver:/root:/bin/bash

Nach der Anpassung sieht eine Email wie folgt aus:

Grundsätzlich kann natürlich auch mit sprechenden Namen gearbeitet werden, nicht nur mit Email-Adressen.

Erweiterung der Skripte, um Emails senden zu können

In den Skripten muss nun noch der Email-Versand eingestellt werden. Erweitern Sie Ihr Backup- und/oder das Prune-Skript z.B. um die folgenden Zeilen

# Mail an Admin senden
mailx -r backup@backupserver -s "Backup | Prune" admin@domain.tld < $LOG

Fazit

In diesem Beitrag haben wir unser Backup um eine Email-Funktionalität erweitert sowie eine Alterung der Backup-Daten eingestellt. Die Installation ist in diesem Zustand schon recht gut nutzbar sowie erweiterbar. Im dritten Teil dieser Serie kümmern wir uns um eine Schränkung der SSH-Möglichkeiten der Server gegenüber dem Backup-System.


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

2 Kommentare:

  1. Grau auf Schwarzem Hintergrund ist eher schlecht zu lesen, ich geb es auf!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert