Skip to content

Restic - Ein Backupkonzept - Wiederherstellung

Verschoben Restic
1 1 768
  • 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! 😀

  • 188 Stimmen
    17 Beiträge
    35 Aufrufe
    cygnus@lemmy.caC
    Chepas, moi... Pourquoi pas G'b'ntu tant qu'à faire?
  • Update 1.32.3 released

    Vaultwarden vaultwarden linux
    1
    0 Stimmen
    1 Beiträge
    149 Aufrufe
    Niemand hat geantwortet
  • Intel ARC A580

    Linux linux intelarc debian
    4
    4
    0 Stimmen
    4 Beiträge
    619 Aufrufe
    FrankMF
    Zwei Monitore ausprobiert, einen 4K und einen Full-HD (HDMI). Lief einwandfrei, auch gemeinsam.
  • Restic - Kompression

    Restic restic
    2
    0 Stimmen
    2 Beiträge
    421 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 [image: 1651846033957-547e3596-69df-48ac-9409-5173367afb85-grafik.png] Test mit 7z Rechtsklick, mit den Bordmittel und dann 7z gewählt. [image: 1651845865746-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 [image: 1651846470644-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 [image: 1651846653769-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!
  • LMDE Beta

    Linux lmde linux
    1
    1
    0 Stimmen
    1 Beiträge
    241 Aufrufe
    Niemand hat geantwortet
  • Ubiquiti ER-X - Firewall

    Verschoben OpenWRT & Ubiquiti ER-X openwrt linux er-x
    1
    2
    0 Stimmen
    1 Beiträge
    304 Aufrufe
    Niemand hat geantwortet
  • LUKS verschlüsselte Platte mounten

    Linux linux
    2
    1
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF
    So, jetzt das ganze noch einen Ticken komplizierter Ich habe ja heute, für eine Neuinstallation von Ubuntu 20.04 Focal eine zweite NVMe SSD eingebaut. Meinen Bericht zu dem Thema findet ihr hier. Aber, darum soll es jetzt hier nicht gehen. Wir haben jetzt zwei verschlüsselte Ubuntu NVMe SSD Riegel im System. Jetzt klappt die ganze Sache da oben nicht mehr. Es kommt immer einen Fehlermeldung. unbekannter Dateisystemtyp „LVM2_member“. Ok, kurz googlen und dann findet man heraus, das es nicht klappen kann, weil beide LVM Gruppen, den selben Namen benutzen. root@frank-MS-7C37:/mnt/crypthome/root# vgdisplay --- Volume group --- VG Name vgubuntu2 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <464,53 GiB PE Size 4,00 MiB Total PE 118919 Alloc PE / Size 118919 / <464,53 GiB Free PE / Size 0 / 0 VG UUID lpZxyv-cNOS-ld2L-XgvG-QILa-caHS-AaIC3A --- Volume group --- VG Name vgubuntu System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <475,71 GiB PE Size 4,00 MiB Total PE 121781 Alloc PE / Size 121781 / <475,71 GiB Free PE / Size 0 / 0 VG UUID jRYTXL-zjpY-lYr6-KODT-u0LJ-9fYf-YVDna7 Hier oben sieht man das schon mit geändertem Namen. Der VG Name muss unterschiedlich sein. Auch dafür gibt es ein Tool. root@frank-MS-7C37:/mnt/crypthome/root# vgrename --help vgrename - Rename a volume group Rename a VG. vgrename VG VG_new [ COMMON_OPTIONS ] Rename a VG by specifying the VG UUID. vgrename String VG_new [ COMMON_OPTIONS ] Common options for command: [ -A|--autobackup y|n ] [ -f|--force ] [ --reportformat basic|json ] Common options for lvm: [ -d|--debug ] [ -h|--help ] [ -q|--quiet ] [ -v|--verbose ] [ -y|--yes ] [ -t|--test ] [ --commandprofile String ] [ --config String ] [ --driverloaded y|n ] [ --nolocking ] [ --lockopt String ] [ --longhelp ] [ --profile String ] [ --version ] Use --longhelp to show all options and advanced commands. Das muss dann so aussehen! vgrename lpZxyv-cNOS-ld2L-XgvG-QILa-caHS-AaIC3A vgubuntu2 ACHTUNG Es kann zu Datenverlust kommen, also wie immer, Hirn einschalten! Ich weiß, das die erste eingebaute Platte mit der Nummer /dev/nvme0n1 geführt wird. Die zweite, heute verbaute, hört dann auf den Namen /dev/nvme1n1. Die darf ich nicht anpacken, weil sonst das System nicht mehr startet. /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/vgubuntu-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/nvme1n1p2 during installation UUID=178c7e51-a1d7-4ead-bbdf-a956eb7b754f /boot ext4 defaults 0 2 # /boot/efi was on /dev/nvme0n1p1 during installation UUID=7416-4553 /boot/efi vfat umask=0077 0 1 /dev/mapper/vgubuntu-swap_1 none swap sw 0 0 Jo, wenn jetzt die Partition /dev/mapper/vgubuntu2-root / anstatt /dev/mapper/vgubuntu-root / heißt läuft nichts mehr. Nur um das zu verdeutlichen, auch das könnte man problemlos reparieren. Aber, ich möchte nur warnen!! Nachdem die Änderung durchgeführt wurde, habe ich den Rechner neugestartet. Puuh, Glück gehabt, richtige NVMe SSD erwischt Festplatte /dev/mapper/vgubuntu2-root: 463,58 GiB, 497754832896 Bytes, 972177408 Sektoren Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Nun können wir die Platte ganz normal, wie oben beschrieben, mounten. Nun kann ich noch ein paar Dinge kopieren
  • Wireguard - Client installieren

    Wireguard linux wireguard
    3
    0 Stimmen
    3 Beiträge
    832 Aufrufe
    FrankMF
    Ich kann dir nicht ganz folgen. Mein Wireguard Server ist eine VM im Netz. Mein Smartphone baut zu diesem eine Verbindung auf und ich habe mal eben nachgeschaut, was da so geht. Mein Smartphone ist aktuell im meinem WLan angemeldet. [image: 1586458461693-6e0016dc-7e11-41e1-bba2-e52a3f1348df-image-resized.png] iperf3 -s -B 10.10.1.1 ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44246 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44248 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 4.98 MBytes 41.7 Mbits/sec [ 5] 1.00-2.00 sec 5.52 MBytes 46.3 Mbits/sec [ 5] 2.00-3.00 sec 4.80 MBytes 40.3 Mbits/sec [ 5] 3.00-4.00 sec 4.17 MBytes 35.0 Mbits/sec [ 5] 4.00-5.00 sec 5.04 MBytes 42.3 Mbits/sec [ 5] 5.00-6.00 sec 5.43 MBytes 45.6 Mbits/sec [ 5] 6.00-7.00 sec 5.75 MBytes 48.3 Mbits/sec [ 5] 7.00-8.00 sec 5.70 MBytes 47.8 Mbits/sec [ 5] 8.00-9.00 sec 5.73 MBytes 48.1 Mbits/sec [ 5] 9.00-10.00 sec 5.65 MBytes 47.4 Mbits/sec [ 5] 10.00-10.04 sec 206 KBytes 46.5 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.04 sec 53.0 MBytes 44.3 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44250 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44252 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 4.80 MBytes 40.2 Mbits/sec 0 253 KBytes [ 5] 1.00-2.00 sec 14.7 MBytes 123 Mbits/sec 181 379 KBytes [ 5] 2.00-3.00 sec 9.68 MBytes 81.2 Mbits/sec 58 294 KBytes [ 5] 3.00-4.00 sec 8.88 MBytes 74.5 Mbits/sec 1 227 KBytes [ 5] 4.00-5.00 sec 7.76 MBytes 65.1 Mbits/sec 0 245 KBytes [ 5] 5.00-6.00 sec 8.88 MBytes 74.5 Mbits/sec 0 266 KBytes [ 5] 6.00-7.00 sec 9.81 MBytes 82.3 Mbits/sec 0 289 KBytes [ 5] 7.00-8.00 sec 7.82 MBytes 65.6 Mbits/sec 35 235 KBytes [ 5] 8.00-9.00 sec 5.59 MBytes 46.9 Mbits/sec 4 186 KBytes [ 5] 9.00-10.00 sec 6.64 MBytes 55.7 Mbits/sec 0 207 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.04 sec 84.6 MBytes 70.6 Mbits/sec 279 sender ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ^Ciperf3: interrupt - the server has terminated Im zweiten Teil ist der Wireguard Server der Sender. Bis jetzt hatte ich eigentlich nie Probleme, auch nicht unterwegs. Aber, ich gehe davon aus, das ich dich nicht 100% verstanden habe