Skip to content

Restic - Ein Backupkonzept - Wiederherstellung

Verschoben Restic
  • Im letzten Artikel Restic - Ein Backupkonzept - Automatisieren! haben wir mittels Restic und Rclone eine Datensicherungsmöglichkeit erstellt, die uns vollautomatisch Backup's in eine Nextclod-Installation sichert.

    So weit, so gut. Aber ein Backup nützt nichts, wenn man die Daten nicht testet und auch mal die Wiederherstellung ausprobiert. Restic legt ja nun bei jedem Vorgang einen Snapshot an. Hier eine kurze Erklärung wie man diese testet und wiederherstellt.

    Snapshot auflisten

    Mit folgendem Befehl listet man alle Snaphots auf.

    restic -r rclone:nextcloud:TEST snapshots
    

    Ausgabe:

    restic -r rclone:nextcloud:TEST snapshots
    enter password for repository:
    password is correct
    ID Date Host Tags Directory
    ----------------------------------------------------------------------
    5c190a9a 2018-04-25 17:32:56 frank-MS-7A34 /media/
    80dbfa5e 2018-04-25 17:33:54 frank-MS-7A34 /media/
    7c894658 2018-04-25 17:36:06 frank-MS-7A34 /media/
    32f6138b 2018-04-25 17:39:09 frank-MS-7A34 /media/
    51746817 2018-04-25 17:39:34 frank-MS-7A34 /media/
    5fba5e1d 2018-04-25 17:39:51 frank-MS-7A34 /media/
    0f4b2d7e 2018-04-25 20:24:40 frank-MS-7A34 /media/
    a3622a2b 2018-04-25 20:26:17 frank-MS-7A34 /media/
    c15e6293 2018-04-25 20:29:03 frank-MS-7A34 /media/
    3c13b348 2018-04-26 20:00:04 frank-MS-7A34 /media/
    ad607561 2018-04-27 20:00:05 frank-MS-7A34 /media/
    ----------------------------------------------------------------------
    11 snapshots
    

    Snapshot testen

    restic -r rclone:nextcloud:TEST check --read-data
    using temporary cache in /tmp/restic-check-cache-935353687
    enter password for repository: 
    password is correct
    create exclusive lock for repository
    load indexes
    check all packs
    check snapshots, trees and blobs
    read all data
    [0:00] 100.00%  5 / 5 items
    duration: 0:00
    no errors were found
    

    Wir sehen, das die Daten in Ordnung sind.

    Snapshot wiederherstellen

    Die Snapshot-ID kopieren und dann folgenden Befehl eingeben

    restic -r rclone:nextcloud:TEST restore ad607561 --target /home/frank/Test_Restic
    enter password for repository:
    password is correct
    restoring to /home/frank/Test_Restic
    

    Danach befinden sich die Daten im Ordner /home/frank/Test_Restic

    Script erweitern

    Um das Ganze jetzt rund zu machen, brauchen wir ein Script, was die Daten sichert. Nach der Sicherung uns die Daten testet und bei einem Fehler eine Ausgabe in ein Logfile macht.

    Ok, also manipulieren wir ein File um den Fehler abfangen zu können.

    ./check.sh
    using temporary cache in /tmp/restic-check-cache-068904630
    password is correct
    create exclusive lock for repository
    load indexes
    check all packs
    check snapshots, trees and blobs
    error: load <snapshot/a82ece8693>: invalid data returned
    read all data
    [0:00] 100.00% 3 / 3 items
    duration: 0:00
    Fatal: repository contains errors
    Abgebrochen
    

    Den Snapshot a82.... habe ich manipuliert, eine Fehlermeldung "Abgebrochen" gebe ich auch schon aus. Das File sieht so aus.

    #!/bin/bash
    # Script um mit Restic & Rclone Daten zu checken!
    
    # PW hinterlegen
    export RESTIC_PASSWORD=12345678
    
    restic -r rclone:nextcloud:Daten check --read-data
    failcode=$?
    
    d='date +%d.%m.%Y_%H:%M:%S'
    
    if [ $failcode != 0 ]
    then
        echo $d "Ein Fehler ist aufgetreten!" >> /home/frank/restic.log
    fi
    

    Bei einem Fehler wird geloggt. Ausgabe:

    27.04.2018_22:13:51 Ein Fehler ist aufgetreten!
    27.04.2018_22:14:35 Ein Fehler ist aufgetreten!
    

    Das Ganze basteln wir jetzt mit dem Backup-Script zusammen.

    #!/bin/bash
    # Script um mit Restic & Rclone Daten automatisiert zu sichern!
    
    # Repo definieren und PW hinterlegen
    export RESTIC_PASSWORD=12345678
    
    #Was soll gesichert werden?
    backup_pfad=/media/
    
    #Programm Start
    restic -r rclone:nextcloud:TEST backup $backup_pfad
    restic -r rclone:nextcloud:TEST check --read-data
    
    failcode=$?
    d='date +%d.%m.%Y_%H:%M:%S'
    
    if [ $failcode != 0 ]
    then
       echo $d "Ein Fehler ist aufgetreten!" >> /home/frank/restic.log
    fi
    

    Done! 😀

  • Restic v0.16.1 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    91 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    116 Aufrufe
    Niemand hat geantwortet
  • Restic v0.14.0 released

    Restic
    5
    0 Stimmen
    5 Beiträge
    138 Aufrufe
    FrankMF

    @berthold GUI v1.5.0 released mit Unterstützung für restic 0.14.0 und dem Migrations Tool. Bitte zum Testen evt. nicht auf die wichtigsten Daten loslassen 😉

    Mein Test mit meinem Repo auf dem REST-Server war erfolgreich.

  • Restic - Kompression

    Restic
    2
    0 Stimmen
    2 Beiträge
    257 Aufrufe
    FrankMF

    Gestern Abend noch ein paar Tests gemacht, aber nicht wirklich Erfolg gehabt. Ok, dann heute noch mal von vorne und mit System. Als erstes muss man mal Daten finden, die man auch gut komprimieren kann, ich will ja auch ein deutliches Ergebnis sehen.

    Meine Wahl fiel auf einen openwrt Ordner, mit dem ich mal ein Image selber gebaut hatte. Schön viele kleine Dateien, sollte sich gut komprimieren lassen.

    Original

    547e3596-69df-48ac-9409-5173367afb85-grafik.png

    Test mit 7z

    Rechtsklick, mit den Bordmittel und dann 7z gewählt.

    364b497f-cf59-408c-ba2b-cad70cc09529-grafik.png

    Test mit Restic V1

    Ich habe auf einer mechanischen 1TB Platte zwei Ordner angelegt, einmal Restic_V1, einmal Restic_V2.

    frank@frank-MS-7C37:~/Downloads$ restic version restic 0.13.1 compiled with go1.18 on linux/amd64 Init restic init -r /media/1TB/Restic_V1/ Backup frank@frank-MS-7C37:~/Downloads$ restic -r /media/1TB/Restic_V1/ backup /home/frank/openwrt/ enter password for repository: repository 731db857 opened successfully, password is correct created new cache in /home/frank/.cache/restic no parent snapshot found, will read all files Files: 407839 new, 0 changed, 0 unmodified Dirs: 41286 new, 0 changed, 0 unmodified Added to the repo: 7.851 GiB processed 407839 files, 11.061 GiB in 4:49 snapshot 24cd8ef4 saved Ergebnis

    799fa3ee-5bdf-48ba-a05e-8f7f24f1c41b-grafik.png

    Test mit Restic V2 frank@frank-MS-7C37:~/Downloads$ ./restic_v0.13.0-126-g26c33332_linux_amd64 version restic 0.13.1-dev (compiled manually) compiled with go1.18 on linux/amd64 Init ./restic_v0.13.0-126-g26c33332_linux_amd64 init -r /media/1TB/Restic_V2/ --repository-version 2 Backup frank@frank-MS-7C37:~/Downloads$ ./restic_v0.13.0-126-g26c33332_linux_amd64 -r /media/1TB/Restic_V2/ backup /home/frank/openwrt/ enter password for repository: repository 33c5e24c opened (repo version 2) successfully, password is correct created new cache in /home/frank/.cache/restic no parent snapshot found, will read all files Files: 407839 new, 0 changed, 0 unmodified Dirs: 41286 new, 0 changed, 0 unmodified Added to the repo: 7.835 GiB processed 407839 files, 11.061 GiB in 2:47 snapshot 474d0376 saved Ergebnis

    caafd946-1285-4e1d-8873-a3ff4141a777-grafik.png

    Fazit

    Fassen wir es mal ein wenig zusammen. Das Original hat 12,1GB

    ITool Dateigröße Zeit 7z 2,2GB ca. 11:59 Restic V1 8,5GB 4:49 Restic V2 2,9GB 2:47

    Man kann auch noch etwas an der Kompression einstellen, ich habe es für diesen Test auf der Standardeinstellung(?) gelassen.

    You can set the desired compression level by passing it to --compression (e.g. restic backup --compression max), supported are auto, max and off.

    Das Ergebnis sieht sehr vielversprechend aus. Es könnte den Platzverbrauch stark begrenzen, sehr wichtig für mich wenn man seine Daten in einer Cloud speichert. (Stichwort: Kosten) Und was hier auch noch schön ins Auge fällt, es ist schneller 🙂 Das möchte ich hier nicht versuchen zu erklären, da ich nicht genau woran es liegt. Vermutung, ich muss wesentlich weniger Daten "schreiben".

    Ich freue mich extrem, diese Version produktiv einzusetzen. Mal überlegen, ob ich die Version hier auf dem Haupt-PC mal testweise nutze, ich denke das wäre spannend.

    @Restic-Team: Vielen Dank für dieses tolle Feature!
  • Restic v0.13.1 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    94 Aufrufe
    Niemand hat geantwortet
  • checkmk - systemd crasht

    Verschoben checkmk
    1
    0 Stimmen
    1 Beiträge
    382 Aufrufe
    Niemand hat geantwortet
  • NodeBB - Automatisch starten

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    603 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet