Skip to content

Restic - riscv64

Restic
  • Beim Rumspielen mit dem RISC-V Board VisionFive2 ist mir aufgefallen, das mein Lieblingstool nicht einwandfrei funktioniert. Installieren konnte ich das auf dem Debian Image, aber die Update Funktion war fehlerhaft.

    root@starfive:~# restic self-update
    writing restic to /usr/bin/restic
    find latest release of restic at GitHub
    

    Ok, mal nachgefragt

    https://forum.restic.net/t/restic-self-update-is-broken-on-riscv64/5895/4

    Somit besteht die Möglichkeit, das es in einem der nächsten Updates funktioniert 🙂

    https://github.com/restic/restic/pull/4180

  • Mittlerweile ist das gemerged. Sollte also im nächsten Release enthalten sein. Das Spielkind hat sich dann mal die aktuelle Version, so zum Testen, auf dem RISC-V mal mit go gebaut.

    apt install golang-go
    

    Version?

    root@starfive:~# go version
    go version go1.18.3 linux/riscv64
    

    Restic clonen

    root@starfive:~# git clone https://github.com/restic/restic
    Cloning into 'restic'...
    

    Restic bauen

    root@starfive:~# cd restic/
    root@starfive:~/restic# go run build.go
    go: downloading github.com/anacrolix/fuse v0.2.0
    go: downloading github.com/minio/sha256-simd v1.0.0
    go: downloading github.com/restic/chunker v0.4.0
    go: downloading github.com/spf13/cobra v1.6.1
    go: downloading github.com/spf13/pflag v1.0.5
    go: downloading golang.org/x/sync v0.1.0
    ....
    

    Restic Version?

    root@starfive:~/restic# ./restic version
    restic 0.15.1 (v0.15.1-5-g590eb9efd) compiled with go1.18.3 on linux/riscv64
    

    Restic Help

    root@starfive:~/restic# ./restic -h     
     
     restic is a backup program which allows saving multiple revisions of files and
     directories in an encrypted repository stored on different backends.
     
     Usage:
       restic [command]
     
     Available Commands:
       backup        Create a new backup of files and/or directories
       cache         Operate on local cache directories
       cat           Print internal objects to stdout
       check         Check the repository for errors
       copy          Copy snapshots from one repository to another
       diff          Show differences between two snapshots
       dump          Print a backed-up file to stdout
       find          Find a file, a directory or restic IDs
       forget        Remove snapshots from the repository
       generate      Generate manual pages and auto-completion files (bash, fish, zsh, powershell)
       help          Help about any command
       init          Initialize a new repository
       key           Manage keys (passwords)
       list          List objects in the repository
       ls            List files in a snapshot
       migrate       Apply migrations
       mount         Mount the repository
       prune         Remove unneeded data from the repository
       rebuild-index Build a new index
       recover       Recover data from the repository not referenced by snapshots
       restore       Extract the data from a snapshot
       rewrite       Rewrite snapshots to exclude unwanted files
       self-update   Update the restic binary
       snapshots     List all snapshots
       stats         Scan the repository and show basic statistics
       tag           Modify tags on snapshots
       unlock        Remove locks other processes created
       version       Print version information
     
     Flags:
           --cacert file                file to load root certificates from (default: use system certificates)
           --cache-dir directory        set the cache directory. (default: use system default cache directory)
           --cleanup-cache              auto remove old cache directories
           --compression mode           compression mode (only available for repository format version 2), one of (auto|off|max) (default auto)
       -h, --help                       help for restic
           --insecure-tls               skip TLS certificate verification when connecting to the repository (insecure)
           --json                       set output mode to JSON for commands that support it
           --key-hint key               key ID of key to try decrypting first (default: $RESTIC_KEY_HINT)
           --limit-download rate        limits downloads to a maximum rate in KiB/s. (default: unlimited)
           --limit-upload rate          limits uploads to a maximum rate in KiB/s. (default: unlimited)
           --no-cache                   do not use a local cache
           --no-lock                    do not lock the repository, this allows some operations on read-only repositories
       -o, --option key=value           set extended option (key=value, can be specified multiple times)
           --pack-size size             set target pack size in MiB, created pack files may be larger (default: $RESTIC_PACK_SIZE)
           --password-command command   shell command to obtain the repository password from (default: $RESTIC_PASSWORD_COMMAND)
       -p, --password-file file         file to read the repository password from (default: $RESTIC_PASSWORD_FILE)
       -q, --quiet                      do not output comprehensive progress report
       -r, --repo repository            repository to backup to or restore from (default: $RESTIC_REPOSITORY)
           --repository-file file       file to read the repository location from (default: $RESTIC_REPOSITORY_FILE)
           --tls-client-cert file       path to a file containing PEM encoded TLS client certificate and private key
       -v, --verbose n                  be verbose (specify multiple times or a level using --verbose=n, max level/times is 2)
     
     Use "restic [command] --help" for more information about a command.
    

    Das restic self-update ist immer noch kaputt, das sollte dann mit dem nächsten Release gefixt sein.

    root@starfive:~/restic# ./restic self-update
    writing restic to /root/restic/restic
    find latest release of restic at GitHub
    latest version is 0.15.1
    download SHA256SUMS
    download SHA256SUMS.asc
    GPG signature verification succeeded
    Fatal: unable to update restic: unable to find file with suffix linux_riscv64.bz2
    
  • Release ist draußen, jetzt mit riscv64

    Enh #4180: Add release binaries for riscv64 architecture on Linux

    https://github.com/restic/restic/releases/tag/v0.15.2

  • Hier der kurze Praxistest 🙂

    root@visionfive2:/etc# apt install restic
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Suggested packages:
      libjs-sphinxdoc sphinx-rtd-theme-common
    The following NEW packages will be installed:
      restic
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    Need to get 6,899 kB of archives.
    After this operation, 20.8 MB of additional disk space will be used.
    Get:1 http://ports.ubuntu.com lunar/universe riscv64 restic riscv64 0.14.0-1 [6,899 kB]
    Fetched 6,899 kB in 1s (5,589 kB/s)  
    Selecting previously unselected package restic.
    (Reading database ... 34675 files and directories currently installed.)
    Preparing to unpack .../restic_0.14.0-1_riscv64.deb ...
    Unpacking restic (0.14.0-1) ...
    Setting up restic (0.14.0-1) ...
    Processing triggers for man-db (2.11.2-1) ...
    
    root@visionfive2:/etc# restic version
    restic 0.14.0 compiled with go1.19.2 on linux/riscv64
    
    root@visionfive2:/etc# restic self-update
    writing restic to /usr/bin/restic
    find latest release of restic at GitHub
    latest version is 0.15.2
    download SHA256SUMS
    download SHA256SUMS.asc
    GPG signature verification succeeded
    download restic_0.15.2_linux_riscv64.bz2
    downloaded restic_0.15.2_linux_riscv64.bz2
    saved 21954560 bytes in /usr/bin/restic
    successfully updated restic to version 0.15.2
    
    root@visionfive2:/etc# restic version
    restic 0.15.2 compiled with go1.20.3 on linux/riscv64
    
    root@visionfive2:/etc#
    

  • Restic v0.17.0 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    102 Aufrufe
    Niemand hat geantwortet
  • Restic v0.13.0 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    110 Aufrufe
    Niemand hat geantwortet
  • Proxmox - Hetzner Storage Box in VM einbinden

    Proxmox
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • Restic v0.12.1 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    169 Aufrufe
    Niemand hat geantwortet
  • Rest-Server aufsetzen

    Angeheftet Restic
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    M

    @FrankM

    Hallo Frank,

    vielen Dank für deine Antwort. Die Clients greifen alle via REST-Schnittstelle auf den restic-Server zu. Da der restic-Server im append-only Modus läuft, können die Clients prinzipiell keine Snapshots entfernen, ihnen fehlt das Recht.

    Derzeit teste ich ein lokales, auf dem REST-Server liegendes Skript, welches per cron ausgeführt wird. Dieses Skript stellt eine lokale Verbindung zum REPO her, also nicht über die REST-Schnittstelle. Damit würde erstmal das Löschen älterer Snapshots funktionieren. Vielleicht hat ja noch jemand eine andere Idee??

  • Rest-Server

    Verschoben Restic
    8
    0 Stimmen
    8 Beiträge
    565 Aufrufe
    FrankMF

    Dann mal eben ausprobiert. Auf meinem Server war die Version 0.9.7 selber, mit go, gebaut. Dann mache ich das auch mit der v0.10.0 so. Aber bevor ich anfange, wird die v0.9.7 gesichert.

    mv /usr/local/bin/rest-server /usr/local/bin/rest-server_0_9_7

    So erspare ich mir im Problemfall das selber bauen.

    Ok, dann die neue Version bauen.

    git clone https://github.com/restic/rest-server.git cd rest-server go run build.go

    Danach befindet sich im Verzeichnis die Binärdatei rest-server

    Die kopieren wir jetzt

    cp rest-server /usr/local/bin

    Danach kurzer Test

    # rest-server --version rest-server 0.10.0 (v0.10.0-6-g037fe06) compiled with go1.11.6 on linux/amd64

    Gut Version passt 🙂

    Dann ein Backup gestartet. Das sichert einen Teil meines Home-Verzeichnis

    Files: 153 new, 100 changed, 177857 unmodified Dirs: 0 new, 1 changed, 0 unmodified Added to the repo: 81.881 MiB processed 178110 files, 80.571 GiB in 0:28 snapshot 607e0027 saved Applying Policy: keep the last 3 snapshots, 3 monthly snapshots keep 5 snapshots: ID Time Host Tags Reasons Paths --------------------------------------------------------------------------------------- fa97890e 2020-07-25 21:02:05 frank-XXX monthly snapshot /home/frank 5b073bbb 2020-08-30 10:17:27 frank-XXX monthly snapshot /home/frank f7cf37ef 2020-09-06 15:13:03 frank-XXX last snapshot /home/frank 0157462c 2020-09-13 13:32:12 frank-XXX last snapshot /home/frank 607e0027 2020-09-14 08:09:34 frank-XXX last snapshot /home/frank monthly snapshot --------------------------------------------------------------------------------------- 5 snapshots remove 1 snapshots: ID Time Host Tags Paths --------------------------------------------------------------------- 3010b7cc 2020-09-06 11:39:27 frank-XXX /home/frank --------------------------------------------------------------------- 1 snapshots 1 snapshots have been removed, running prune counting files in repo building new index for repo [1:34] 100.00% 17351 / 17351 packs

    So weit funktioniert das genau wie vorher. Im Changelog stand ja was von Subfoldern. Das betrifft mich nicht, weil ich für jeden User genau ein Verzeichnis habe.

    So mit alles Gut 🙂 Dann warte ich mal morgen ab, ob die täglichen Backups der Server rund laufen.

  • Restic - Einen ROCKPro64 als Datengrab benutzen

    Verschoben Restic
    2
    0 Stimmen
    2 Beiträge
    837 Aufrufe
    FrankMF

    So, dann mal das Ganze testen wenn man seinen Haupt-PC neu installiert hat und ein paar Daten braucht.

    0_1534692578537_IMG_20180819_090116_ergebnis.jpg

    Also, mal Restic installiert.

    sudo apt-get install restic

    Nach erfolgter Installation ein Test

    frank@frank-MS-7A34:~/restic$ restic version restic 0.8.3 compiled with go1.10 on linux/amd64

    Geht so weit.

    Snapshots auflisten. restic -r sftp:rock64@IP:/home/rock64/backup snapshots

    Sieht dann so aus.

    frank@frank-MS-7A34:~$ sudo restic -r sftp:rock64@192.168.3.207:/home/rock64/backup snapshots [sudo] Passwort für frank: rock64@192.168.3.207's password: enter password for repository: password is correct ID Date Host Tags Directory ---------------------------------------------------------------------- 7e2eddcb 2018-08-18 10:10:40 frank-MS-7A34 /home/frank/Bilder 073b7cb4 2018-08-18 14:21:17 frank-MS-7A34 /home/frank 6bc9b21b 2018-08-18 16:11:19 frank-MS-7A34 /home/frank ---------------------------------------------------------------------- 3 snapshots Snapshot wiederherstellen sudo restic -r sftp:rock64@IP:/home/rock64/backup restore latest --target /tmp/backup

    Hiermit stellen wir das Backup im temporären Ordner /tmp/backup wieder her. Hat ewig gedauert, aber ging !?!?!?

  • Restic - Ein Backupkonzept - Wiederherstellung

    Verschoben Restic
    1
    0 Stimmen
    1 Beiträge
    729 Aufrufe
    Niemand hat geantwortet