!!!Borg Backup

auf der Suche nach einem modernen Backup-Werkzeug ist mir BorgBackup über den Weg gelaufen.
Viele Werkzeuge, die sich "Backup" nennen, stammen aus der Zeit der Magnetbänder und verhalten sich 
entsprechend. Ich war auf der Suche nach einem Werkzeug, das die Daten effizient auf einem
entfernten Backup-Server über das Netzwerk oder über das Internet speichert.

Borg und die unten genannten Alternativen können das. Borg hat den Weg in die [Debian Distribution|https://packages.debian.org/search?keywords=borgbackup] gefunden.

!!Features

Daten werden __dedupliziert__, __verschlüsselt__ und optional __komprimiert__ in einem Repository abgelegt. Das Repository kann auf einem __entfernten Borg-Server__ liegen. Die Datenübertragung und der Start des Remote-Borg-Dienstes erfolgen in diesem Fall über {{ssh}}.

Die Deduplizierung findet auf dem Client (dem zu sichernden Rechner) statt. Das gleiche gilt für die Verschlüsselung. Dazu sollte der Rechner bei größeren Datenmengen über ausreichend Hauptspeicher verfügen (in der Größenordnung mehrere GByte RAM für ein Terabyte Disk).

!!Installation

Das Paket findet sich in den Backports zum Jessie-Release. Die Pakete {{python3-msgpack}} und {{borgbackup}} müssen aus den Backports installiert werden und zwar auf Client und Server, etwa so:

    apt-get install python3-msgpack=0.4.6-1~bpo8+1
    apt-get install borgbackup

!!Konfiguration und Backup

Per Voreinstellung wird der Schlüssel für die Verschlüsselung der Datensicherungen mit im Repository auf dem Server hinterlegt. Das klingt nicht nach einer guten Idee; er wird durch eine (hoffentlich gute) Passphrase geschützt. Auf diese Art ist der Schlüssel zumindest auch dann gesichert, wenn der Admin die Doku nur kurz überflogen hat.

Die Konfiguration auf dem Client kann durch Umgebungsvariablen erfolgen. Meine ersten Ad-Hoc-Aufrufe:

    export BORG_REPO='ssh://remoteuser@backupserver.example.com:22/home/borguser/repo'
    export BORG_PASSPHRASE='eine gute Passphrase sieht anders aus'
    
Das Anlegen des Remote-Repositories erfolgt mit:

    borg init

Ein Backup meines lokalen {{/home/localuser/Bilder}}-Verzeichnisses mache ich mit:

    cd $HOME
    borg create ::2017-03-15 Bilder

Dabei wird die Zeichenfolge "2017-03-15" ein Name für meinen Backup

!!Recherche und Restore

Liste Backups und Inhalt eines Backup:

    borg list
    borg list ::2017-03-15

Wiederherstellung eines kompletten Backup:

    mkdir /tmp/restore
    cd /tmp/restore
    borg extract ::2017-03-15 


!!Aufräumen

Lasse jeweils den letzten Backup der letzten 14 Tage stehen:

    borg prune -d 14

!!Links

* https://github.com/borgbackup/borg
* http://borgbackup.readthedocs.io/en/stable/
* http://www.lug-bremen.de/wp-content/uploads/2016/10/borgbackup.html
* https://wiki.ubuntuusers.de/BorgBackup/
* http://hackspoiler.de/2015/07/borg-backup-effizientes-sicheres-stabiles-backup-system/

!!Alternativen

* https://restic.github.io/ - ein junges Projekt, das sehr ähnliche Konzepte in der Programmiersprache [Go|GoLang] umsetzt
* http://obnam.org/

\\
[{Tag Backup Debian Linux}]