Skip to content

Restic - Ein Backupkonzept - Automatisieren!

Verschoben Restic
1 1 1.3k
  • Nach der Erstellung von folgendem Artikel Restic - Ein Backupkonzept habe ich eine Zeit lang gebraucht um mir ein vernünftiges Konzept zu erstellen. Backup's sind eine relativ komplexe und schwierige Materie. Wo lagert man? Was lagert man? Wie sichert man die Daten? usw.

    Wichtige Daten in der eigenen Wohnung zu sichern ist so lange eine gute Idee, bis die Wohnung mal brennt oder die Datenspeicher gestohlen werden. Auf dem Smartphone, das wäre auch noch eine Lösung. In der Cloud!? Hat was, aber ich traue allen kommerziellen Anbietern nicht über den Weg. Was machen? Man nimmt was eigenes, z.B. eine Nextcloud Installation. Da hat man weitestgehend alles in der eigenen Hand. Bleibt das Problem, das wir sehr wichtige Daten NUR verschlüsselt in der Cloud ablegen. Wir wollen es einem evt. Eindringling ja nicht zu einfach machen 😉

    Gut, das mit der Verschlüsselung haben wir ja gelöst, Restic speichert alle Backup's verschlüsselt. Bei der Suche nach einem Konzept bin ich in der Bedienungsanleitung über die Backends gestolpert, die Restic alle so unterstützt.

    0_1524762108060_restic_backends.png

    Die kommerziellen Sachen scheiden aus usw. Am Ende bin ich über Rclone gestolpert.

    Rclone is a command line program to sync files and directories to and from

    Rclone syncronisiert also einen Ordner mit einem Clouddienst. Und da kommt nun Restic ins Spiel, Restic nutzt Rclone zum Speichern der Daten in der Cloud. RClone unterstützt Nextcloud (natürlich auch Owncloud). Somit hätten wir ein gutes Team um Daten verschlüsselt in der Cloud abzulegen, welches sich auch relativ einfach automatisieren lassen sollte. Ok, fangen wir vorne an. Ich gehe von einer funktionierenden Restic Installation aus. Als Backend sollte eine Nextcloud Installation irgendwo im Netz laufen. Auf geht's...

    Rclone Installation

    Dieses Script installiert Rclone auf dem Rechner.

    curl https://rclone.org/install.sh | sudo bash
    

    Nach der erfolgreichen Installation kommt folgendes

    rclone v1.40 has successfully installed.
    Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.
    

    Rclone konfigurieren

    Mit

    rclone config
    

    stellt man die wichtigsten Parameter für Rclone ein.

    • Den Namen der Remoteverbindung - nextcloud
    • Den Type des Datenspeichers - 20 (Webdav)
    • URL of http Host - Den Webdav Pfad zu Eurer Nextcloud Installation
    • Name des Webdav Services - 1 (Nextcloud)
    • User Name - User Name (In Nextcloud festlegen!)
    • Passwort - Passwort (In Nextcloud festlegen)

    Das ganze bestätigen und kurz testen.

    rclone ls nextcloud:
    

    Nun sollte der Inhalt des Verzeichnisses ausgegeben werden.

    frank@frank-MS-7A34 ~ $ rclone ls nextcloud:
    5 TESTING.txt
    

    Erledigt, Rclone läuft. Nun der Teil mit Restic....

    Restic

    Nun schauen wir uns das mal mit Restic etwas genauer an.

    Beim ersten Test bekam ich immer eine Fehlermeldung

    frank@frank-MS-7A34 ~ $ restic -r rclone:nextcloud init
    Fatal: create repository at rclone:nextcloud failed: invalid backend
    If the repo is in a local directory, you need to add a 'local:' prefix
    

    Ok, kurz gegrübelt, das Backend ist drin auf github gecheckt. Klick, ich hatte eine alte Version installiert. Also schnell die neue Version gebaut und das Ganze sah schon besser aus.

    frank@frank-MS-7A34 ~/restic $ restic -r rclone:nextcloud:TEST init
    enter password for new repository:
    enter password again:
    created restic repository 7d6d14e068 at rclone:nextcloud:TEST
    

    Gut, läuft so weit. Kurz noch einen Anmerkung zum Pfad. Nehmen wir folgende Rclone Einstellung an.

    https://PFAD_zu_NEXTCLOUD/remote.php/webdav/BACKUP
    

    Der Restic Aufruf

    rclone:nextcloud:TEST
    

    zeigt auf einen Ordner innerhalb des Ordners Backup. Als Pfadangabe:

    https://PFAD_zu_NEXTCLOUD/remote.php/webdav/BACKUP/TEST
    

    Somit hätten wir jetzt das Repo vorbereitet und können jetzt unsere Daten dort speichern.

    frank@frank-MS-7A34 ~/restic $ restic -r rclone:nextcloud:TEST backup /home/frank/Bilder/21.04/
    enter password for repository:
    password is correct
    found 2 old cache directories in /home/frank/.cache/restic, pass --cleanup-cache to remove them
    

    Hier sieht man einen Aufruf um aus dem Ordner 21.04 die Bilder in Nextcloud zu sichern.Das Passwort wird abgefragt, und wenn korrekt wird gesichert. Im Beispiel tauchen noch alte Cache Dateien auf, hiermit bekommt man die weg.

    restic -r rclone:nextcloud:TEST backup /home/frank/Bilder/21.04/ --cleanup-cache
    

    Cronjob anlegen

    Schnell ein Script für den Cron schreiben. Das Script heißt backup.sh

    #!/bin/bash
    # Script um mit Restic & Rclone Daten automatisiert zu sichern!
    
    # PW hinterlegen
    export RESTIC_PASSWORD=12345678
    
    #Was soll gesichert werden?
    backup_pfad=/media/NAS/
    
    #Programm Start
    restic -r rclone:nextcloud:Daten backup $backup_pfad
    

    Einen Cronjob anlegen

    crontab -e
    

    Folgendes eingeben

    # m h  dom mon dow   command
    00 20 * * * /home/frank/backup.sh
    

    Speichern - Fertig! 😇

    Jeden Tag um 20:00 Uhr werden die Daten entsprechend gesichert!

  • Update 1.34.1

    Vaultwarden vaultwarden linux
    1
    0 Stimmen
    1 Beiträge
    105 Aufrufe
    Niemand hat geantwortet
  • Update 1.32.1 released

    Vaultwarden vaultwarden linux
    1
    0 Stimmen
    1 Beiträge
    158 Aufrufe
    Niemand hat geantwortet
  • Pycharm - Nach Stromausfall startet es nicht mehr.

    Linux pycharm linux
    1
    0 Stimmen
    1 Beiträge
    154 Aufrufe
    Niemand hat geantwortet
  • nano - Zeilennummern dauerhaft anzeigen

    Linux linux
    3
    2
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    FrankMF
    @masko Danke für die Ergänzung. Um den Code zu markieren, kannst Du im Texteditor auf </> klicken oder einfach 4 Leerzeichen vor den Code setzen. Dann sieht es besser aus Und Willkommen im Forum!
  • Debian 11.1 released

    Linux linux debian
    1
    0 Stimmen
    1 Beiträge
    203 Aufrufe
    Niemand hat geantwortet
  • OpenWRT - Zonen

    Verschoben OpenWRT & Ubiquiti ER-X openwrt linux
    2
    3
    0 Stimmen
    2 Beiträge
    729 Aufrufe
    FrankMF
    Es ist was heller geworden [image: 1610188645165-7b86e97c-31a5-44b6-809f-25d9d1c2ee4a-image.png] Die besagte Forward Regel [image: 1610188840619-zonen.png] Diese Forward Regel zieht erst dann, wenn es mehrere Interfaces in einer Zone gibt. Aus der Doku INPUT rules for a zone describe what happens to traffic trying to reach the router itself through an interface in that zone. OUTPUT rules for a zone describe what happens to traffic originating from the router itself going through an interface in that zone. FORWARD rules for a zone describe what happens to traffic passing between different interfaces belonging in the same zone. Das heisst nun, das ein Forwarding zwischen zwei Zonen immer eine spezifische Regel unter Traffic Rules benötigt. Forwarding between zones always requires a specific rule. Somit ist ein Forwarding zwischen zwei Zonen in den Standard Einstellungen nicht erlaubt. Das kann ich hier auch so bestätigen. Das ist ja auch das was ich mit meiner "DMZ"-Zone erreichen möchte. Kein Zugriff auf LAN. Unter Zone ⇒ Forwardings kann man jetzt sehen, das das Forwarding von LAN in Richtung WAN und DMZ erlaubt ist. WAN ist logisch, sonst komme ich ja nicht ins Internet. DMZ habe ich eingestellt, damit ich auch Teilnehmer im DMZ Netz erreichen kann, wenn ich da mal ran muss. [image: 1610189307657-8a548c29-8bc5-4074-8099-66460bcea9a8-image.png] Stelle ich das jetzt so ein. [image: 1610189398985-dca8b393-f613-4cab-a377-ffbc2bb8ddf5-image.png] Dann kann ich von der DMZ Zone aus das LAN erreichen. Aha, so langsam verstehe ich Quelle: https://forum.openwrt.org/t/firewall-zones-and-settings/84369
  • Debian Buster 10 Release

    Linux linux nvidia
    3
    1
    0 Stimmen
    3 Beiträge
    482 Aufrufe
    FrankMF
    Da man ja beim Login auswählen kann, mit was die Session startet, war ich doch jetzt etwas neugierig was überhaupt läuft. [image: 1562484643462-img_20190707_092217.jpg] frank@debian:~$ echo $WAYLAND_DISPLAY frank@debian:~$ loginctl SESSION UID USER SEAT TTY 7 1000 frank seat0 tty2 c1 116 Debian-gdm seat0 tty1 2 sessions listed. frank@debian:~$ loginctl show-session c1 -p Type Type=x11 frank@debian:~$ loginctl show-session c1 Id=c1 User=116 Name=Debian-gdm Timestamp=Sat 2019-07-06 22:43:34 CEST TimestampMonotonic=30094837 VTNr=1 Seat=seat0 TTY=tty1 Remote=no Service=gdm-launch-environment Scope=session-c1.scope Leader=1015 Audit=4294967295 Type=x11 Class=greeter Active=no State=online IdleHint=yes IdleSinceHint=1562446130937731 IdleSinceHintMonotonic=346278596 LockedHint=yes Die Installation der Nvidia Treiber macht da wohl einen x11 Desktop raus. Aber auch nicht weiter schlimm, der Wayland lief ja hier überhaupt nicht. Würde mich aber über interessante Links zum Thema freuen
  • pdo Abfrage funktioniert nicht

    Linux linux
    2
    0 Stimmen
    2 Beiträge
    602 Aufrufe
    FrankMF
    Wichtig ist natürlich auch, das folgendes php Paket installiert ist! sudo apt install php7.0-mysql Je nachdem welche PHP Version installiert ist, muss der Befehl angepasst werden. Mit php -v könnt ihr nachschauen welche Version installiert ist.