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

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

  • 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

  • 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.2 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    107 Aufrufe
    Niemand hat geantwortet
  • Restic v0.17.0 released

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

    Restic
    2
    0 Stimmen
    2 Beiträge
    294 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
  • Restic v0.16.2

    Linux
    1
    0 Stimmen
    1 Beiträge
    117 Aufrufe
    Niemand hat geantwortet
  • Restic UI - kurzes Video

    Linux
    1
    0 Stimmen
    1 Beiträge
    174 Aufrufe
    Niemand hat geantwortet
  • Restic v0.12.0 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    224 Aufrufe
    Niemand hat geantwortet
  • Restic - forget --keep-last 3 --prune

    Restic
    2
    0 Stimmen
    2 Beiträge
    608 Aufrufe
    FrankMF

    Ich habe mich damit noch ein wenig beschäftigt, die letzten drei zu behalten, ist nicht so optimal. Da es viele Optionen bei dem Befehl gibt, hier ein Ausschnitt

    Flags: -l, --keep-last n keep the last n snapshots -H, --keep-hourly n keep the last n hourly snapshots -d, --keep-daily n keep the last n daily snapshots -w, --keep-weekly n keep the last n weekly snapshots -m, --keep-monthly n keep the last n monthly snapshots -y, --keep-yearly n keep the last n yearly snapshots

    habe ich das ein wenig so angepasst, das ich denke es passt für mich.

    restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune

    Damit behalte ich auch die jeweils eines pro Monat. Und die letzten drei. Das sieht dann so aus.

    root@debian:~# ./backup2.sh repository 2f3f6147 opened successfully, password is correct Files: 38 new, 100 changed, 13268 unmodified Dirs: 0 new, 1 changed, 0 unmodified Added to the repo: 10.166 GiB processed 13406 files, 50.324 GiB in 3:24 snapshot 849f614c saved repository 2f3f6147 opened successfully, password is correct Applying Policy: keep the last 3 snapshots, 3 monthly snapshots snapshots for (host [debian], paths [/home/frank]): keep 5 snapshots: ID Time Host Tags Reasons Paths ------------------------------------------------------------------------------------ a7251cfd 2019-11-28 17:00:01 debian monthly snapshot /home/frank 283d4027 2019-12-31 17:00:01 debian monthly snapshot /home/frank ae2b96ec 2020-01-01 21:47:46 debian last snapshot /home/frank 079e00a6 2020-01-02 17:00:01 debian last snapshot /home/frank 849f614c 2020-01-03 21:08:45 debian last snapshot /home/frank monthly snapshot ------------------------------------------------------------------------------------ 5 snapshots remove 26 snapshots: ID Time Host Tags Paths ------------------------------------------------------------------ 896f16c2 2019-11-07 22:23:40 debian /home/frank b21bcf6d 2019-11-11 17:00:01 debian /home/frank f89248fb 2019-11-12 17:00:01 debian /home/frank 123ab546 2019-11-13 17:00:01 debian /home/frank b82d87d0 2019-11-18 17:00:01 debian /home/frank 040b0ab7 2019-11-19 17:00:01 debian /home/frank 7221d8ef 2019-11-20 17:00:01 debian /home/frank 84132a25 2019-11-21 17:00:01 debian /home/frank b558a52c 2019-11-25 17:00:01 debian /home/frank e5cc0c3e 2019-12-02 17:00:01 debian /home/frank 22423fa5 2019-12-03 17:00:01 debian /home/frank 39df1ab9 2019-12-04 17:00:01 debian /home/frank 98843457 2019-12-05 17:00:01 debian /home/frank b0cdd4b6 2019-12-09 17:00:01 debian /home/frank 828414f9 2019-12-10 17:00:01 debian /home/frank e34a27c3 2019-12-11 17:00:01 debian /home/frank 6e488c3b 2019-12-12 17:00:01 debian /home/frank 17898403 2019-12-16 17:00:01 debian /home/frank 1973305a 2019-12-17 17:00:01 debian /home/frank 9553bedd 2019-12-18 17:00:01 debian /home/frank fedf749d 2019-12-19 17:00:01 debian /home/frank 8e7cb876 2019-12-23 17:00:01 debian /home/frank 0bd0d102 2019-12-25 17:00:01 debian /home/frank 13d348b0 2019-12-26 17:00:01 debian /home/frank c7d960aa 2019-12-30 17:00:01 debian /home/frank f6ea9118 2020-01-01 17:00:01 debian /home/frank ------------------------------------------------------------------ 26 snapshots 26 snapshots have been removed, running prune counting files in repo building new index for repo [0:35] 100.00% 7806 / 7806 packs repository contains 7806 packs (46537 blobs) with 41.110 GiB processed 46537 blobs: 0 duplicate blobs, 0 B duplicate load all snapshots find data that is still in use for 5 snapshots [0:01] 100.00% 5 / 5 snapshots found 32654 of 46537 data blobs still in use, removing 13883 blobs will remove 0 invalid files will delete 715 packs and rewrite 752 packs, this frees 5.027 GiB [2:28] 100.00% 752 / 752 packs rewritten counting files in repo [0:01] 100.00% 6571 / 6571 packs finding old index files saved new indexes as [d137b425 f7caee99 a6e9711a] remove 35 old index files [1:13] 100.00% 1467 / 1467 packs deleted done using temporary cache in /tmp/restic-check-cache-916655151 repository 2f3f6147 opened successfully, password is correct created new cache in /tmp/restic-check-cache-916655151 create exclusive lock for repository load indexes check all packs check snapshots, trees and blobs read all data [7:47] 100.00% 6571 / 6571 items duration: 7:47 no errors were found root@debian:~#

    Am Ende seht ihr noch, wie Restic alle Files testet. Mein Script sieht jetzt so aus.

    #!/bin/bash # Script um mit Restic Daten automatisiert zu sichern! # Dient zum Sichern der Homepartition auf dem ROCKPro64 NAS! # Was soll gesichert werden? backup_pfad=/home/frank # Programm Start restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ backup $backup_pfad --exclude-file=excludes.txt restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune # Testen restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ check --read-data

    Das dann schön mit einem Cronjob laufen lassen und die Datensicherung ist erledigt 😉

  • Restic - Update

    Restic
    1
    0 Stimmen
    1 Beiträge
    416 Aufrufe
    Niemand hat geantwortet