Skip to content

Restic - Rootserver als Datenablage nutzen

Restic
2 1 798
  • Wir nehmen hier in diesem Beispiel an, wir nutzen irgendwo im Netz einen Server und wollen unser Homeverzeichnis sichern. Restic funktioniert, der Server ist eingerichtet.

    Mit Restic können wir die Daten beruhigt auf den Server schieben, die Daten werden AES-256 verschlüsselt abgelegt.

    Was brauchen wir?

    • Datei /root/excludes.txt
    • Datei /root/passwd
    • Datei ~/.ssh/config

    /root/excludes.txt

    Die Datei excludes.txt beinhaltet eine Liste der Dateien, die wir nicht sichern wollen.

    .cache
    Bilder
    Downloads
    Musik
    Videos
    

    Je nach Vorlieben kann das dann entsprechend eingestellt werden. Die nächste Datei ist ~/.ssh/config

    ~/.ssh/config

    Host <ip address>
            User <user name>
            Port <port>
    

    Hintergrund für diese Datei. Man kann Restic keinen Port mit übergeben. Wenn man nun, was sinnvoll ist, den Standardport für SSH verlegt habt, dann benötigt man diese Datei damit Restic richtig funktioniert. Das könnt Ihr hier nachlesen.

    /root/passwd

    Hier kommt das Paswort rein, was wir dem Script mit übergeben. So mit taucht das Passwort auch nicht z.B. in htop auf!!

     Passwd12345678
    

    Wir starten mit der Erstellung.

    Restic Init

     root@frank-MS-7A34:~# restic -r sftp:<ip address>:/<user>/backup/home init
     enter password for new repository: 
     enter password again: 
     created restic repository fffffffffffffa at sftp:<ip address>:/<user>/backup/home
     
     Please note that knowledge of your password is required to access
     the repository. Losing your password means that your data is
     irrecoverably lost.
    

    Erledigt. Die Einrichtung ist abgeschlossen.

    Restic Backup

    root@frank-MS-7A34:~# restic --password-file /root/passwd -r sftp:<ip address>:/root/backup/home backup --verbose /home/frank --exclude-file=excludes.txt
    open repository
    repository fffffffffff opened successfully, password is correct
    created new cache in /root/.cache/restic
    lock repository
    load index files
    start scan on [/home/frank]
    start backup on [/home/frank]
    scan finished in 3.888s: 52480 files, 9.811 GiB
    <gekürzt!>
    

    Das oben ist nur der Anfang, danach sichert Restic die ganzen Daten auf dem Rootserver. Das Ganze als kleines Script.

    Script

    #!/bin/bash
    # Script um mit Restic Daten automatisiert zu sichern!
    
    #Was soll gesichert werden?
    backup_pfad=/home/frank
    
    #Programm Start
    restic --password-file /root/passwd -r sftp:<ip address>:/root/backup/home backup --verbose $backup_pfad --exclude-file=excludes.txt
    

    Nix besonderes, aber funktioniert. Das Script dann mittels

    crontab -e
    

    als User root eintragen und fertig!

    Für Anwender, die das nicht als User Root laufen lassen wollen, gibt es hier eine Erklärung wie man es macht. (Ganz unten)

  • Ok, das erste Backup dauert immer was länger 😉 In meinem Fall 5 Std. 16 Minuten.

    Files:       33408 new,     0 changed,     0 unmodified
    Dirs:            1 new,     0 changed,     0 unmodified
    Data Blobs:  20849 new
    Tree Blobs:      2 new
    Added to the repo: 6.278 GiB
    
    processed 33408 files, 8.604 GiB in 5:16:03
    snapshot 5beg1cb3 saved
    

    Aber, das Schöne ist, das die Backups inkrementell angelegt werden. Das nächste geht schneller 🙂

    open repository
    repository 3gg202a2 opened successfully, password is correct
    lock repository
    load index files
    using parent snapshot 5beg1cb3
    start scan on [/home/frank]
    start backup on [/home/frank]
    scan finished in 3.791s: 33788 files, 8.611 GiB
    
    Files:         496 new,    74 changed, 33218 unmodified
    Dirs:            0 new,     1 changed,     0 unmodified
    Data Blobs:    292 new
    Tree Blobs:      2 new
    Added to the repo: 43.661 MiB
    
    processed 33788 files, 8.611 GiB in 2:15
    snapshot fag41bf7 saved
    

    Eine tägliche Sicherung sollte dann wohl reichen.

  • 0 Stimmen
    1 Beiträge
    23 Aufrufe
    Niemand hat geantwortet
  • Rest-Server v0.13.0 released

    Restic rest-server restic linux
    2
    0 Stimmen
    2 Beiträge
    379 Aufrufe
    FrankMF
    Download Rest-Server und installieren Im Github Repository den aktuellen Release suchen. Hier am Beispiel der aktuellen Version 0.13.0 (27.07.2024) Datei herunterladen wget https://github.com/restic/rest-server/releases/download/v0.13.0/rest-server_0.13.0_linux_amd64.tar.gz Die Datei entpacken tar -xf rest-server_0.13.0_linux_amd64.tar.gz Ins Verzeichnis wechseln cd rest-server_0.13.0_linux_amd64 Wenn der Rest-Server läuft, dann muss man diesen erst mal stoppen. systemctl stop rest-server Danach kopiert man das File nach bin. Wer mag sichert vorher das alte File. cp rest-server /usr/local/bin Danach kann man den Rest-Server wieder starten. systemctl start rest-server Versionskontrolle root@rest-server:~# rest-server -v rest-server version rest-server 0.13.0 compiled with go1.22.5 on linux/amd64 Die Hilfe vom Rest-Server root@rest-server:~# rest-server -h Run a REST server for use with restic Usage: rest-server [flags] Flags: --append-only enable append only mode --cpu-profile string write CPU profile to file --debug output debug messages -h, --help help for rest-server --htpasswd-file string location of .htpasswd file (default: "<data directory>/.htpasswd)" --listen string listen address (default ":8000") --log filename write HTTP requests in the combined log format to the specified filename (use "-" for logging to stdout) --max-size int the maximum size of the repository in bytes --no-auth disable .htpasswd authentication --no-verify-upload do not verify the integrity of uploaded data. DO NOT enable unless the rest-server runs on a very low-power device --path string data directory (default "/tmp/restic") --private-repos users can only access their private repo --prometheus enable Prometheus metrics --prometheus-no-auth disable auth for Prometheus /metrics endpoint --tls turn on TLS support --tls-cert string TLS certificate path --tls-key string TLS key path -v, --version version for rest-server Systemd Wer noch ein passendes systemd File benötigt. [Unit] Description=Rest Server After=syslog.target After=network.target [Service] Type=simple User=rest-server Group=rest-server ExecStart=/usr/local/bin/rest-server --private-repos --tls --tls-cert /mnt/rest-server/<DOMAIN>/fullchain.pem --tls-key /mnt/rest-server/<DOMAIN>/key.pem --path /mnt/rest-server Restart=always RestartSec=5 # Optional security enhancements NoNewPrivileges=yes PrivateTmp=yes ProtectSystem=strict ProtectHome=yes ReadWritePaths=/mnt/rest-server [Install] WantedBy=multi-user.target
  • Nextcloud Hub8 Keine Previews

    Nextcloud nextcloud linux
    2
    0 Stimmen
    2 Beiträge
    403 Aufrufe
    FrankMF
    Noch als Ergänzung, der Server läuft mit Debian 12 # uname -a Linux webserver1-4gb-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux
  • Manjaro - KDE Plasma 6

    Linux manjaro linux plasma6 kde
    3
    3
    0 Stimmen
    3 Beiträge
    860 Aufrufe
    FrankMF
    Da fällt mir heute beim Lesen dieses Beitrages auf das ich damals ja auf unstable gestellt habe. [frank-manjaro ~]# pacman-mirrors --get-branch unstable Anleitung dazu -> https://wiki.manjaro.org/index.php/Switching_Branches Ok, da könnte ja auch mal was schief gehen? Da ich hier aber ein btrfs Filesystem fahre und Timeshift Snapshots anlegt, sollte das Risiko überschaubar sein. [image: 1714893983029-567442e5-80f0-4ce9-9b91-3e8f9a4a94d8-grafik.png] Es werden bei jeder Aktion vorher Snapshots angelegt, auf die man im Grub Menü zugreifen kann und diese wieder installieren lassen kann. Hatte das früher schon mal getestet, ging wirklich gut. Werde ich die Tage auch hier auf dem System, zur Sicherheit, mal testen. Fazit, ich lasse das mal so wie es ist
  • 0 Stimmen
    1 Beiträge
    3k Aufrufe
    Niemand hat geantwortet
  • Twitter-Beiträge in NodeBB anzeigen

    Verschoben NodeBB nodebb linux
    3
    0 Stimmen
    3 Beiträge
    413 Aufrufe
    FrankMF
    Endlich was gefunden um Twitter-Beiträge hier anzuzeigen. Beispiele siehe oben... YEAH Wie man das in NodeBB und dem Plugin nodebb-plugin-ns-embed einbaut, steht hier. https://community.nodebb.org/topic/7135/nodebb-plugin-ns-embed-ns-embed/39
  • Raid1 - Platte verschwunden!?

    Verschoben Linux linux
    1
    1
    1 Stimmen
    1 Beiträge
    456 Aufrufe
    Niemand hat geantwortet
  • NAS - Cups & Sane

    Linux linux
    1
    0 Stimmen
    1 Beiträge
    512 Aufrufe
    Niemand hat geantwortet