We are happy to announce the release of restic 0.16.0!
This is a companion discussion topic for the original entry at https://restic.net/blog/2023-07-31/restic-0.16.0-released
We are happy to announce the release of restic 0.16.0!
restic 0.16.0-dev (compiled manually) compiled with go1.20.6 on windows/amd64
restic restore --help
The "restore" command extracts the data from a snapshot from the repository to
a directory.
The special snapshot "latest" can be used to restore the latest snapshot in the
repository.
EXIT STATUS
===========
Exit status is 0 if the command was successful, and non-zero if there was any error.
Usage:
restic restore [flags] snapshotID
Flags:
-e, --exclude pattern exclude a pattern (can be specified multiple times)
-h, --help help for restore
-H, --host host only consider snapshots for this host, when snapshot ID "latest" is given (can be specified multiple times)
--iexclude --exclude same as --exclude but ignores the casing of filenames
--iinclude --include same as --include but ignores the casing of filenames
-i, --include pattern include a pattern, exclude everything else (can be specified multiple times)
--path path only consider snapshots including this (absolute) path, when snapshot ID "latest" is given (can be specified multiple times)
--sparse restore files as sparse
--tag tag[,tag,...] only consider snapshots including tag[,tag,...], when snapshot ID "latest" is given (can be specified multiple times) (default [])
-t, --target string directory to extract data to
--verify verify restored files content
Global Flags:
--cacert file file to load root certificates from (default: use system certificates or $RESTIC_CACERT)
--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: $RESTIC_COMPRESSION) (default auto)
--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)
--retry-lock duration retry to lock the repository if it is already locked, takes a value like 5m or 2h (default: no retries)
--tls-client-cert file path to a file containing PEM encoded TLS client certificate and private key (default: $RESTIC_TLS_CLIENT_CERT)
-v, --verbose be verbose (specify multiple times or a level using --verbose=n, max level/times is 2)
Help in program misses info about
including
<snapshot>:<subfolder>
syntax for thediff
,ls
andrestore
commands, as well as a progress bar and JSON support for therestore
command.
Just wondering about 0.16 new “-group-by=” syntax, it is “tag” or “tags”? Because both form work in cmd scripts (e.g restic -r foo backup --group-by=tag and restic -r foo forget --group-by=tag), it is fine, but maybe that should be “tags” as plural - many “tags” as opposed to one “tag”?
@KamikazeePL see Add snapshot subfolder syntax in help output of diff/dump/restore by MichaelEischer · Pull Request #4436 · restic/restic · GitHub
The multi-platform docker images is a nice feature, and less memory use is a nice touch, along with all the other enhancements. Thanks all! Nice to see Restic is actively maintained.
I tried to get Restic going with Docker recently on Raspberry Pi. The first hurdle was documentation, which isn’t as good as the rest of the platform, but I muddled through. The second hurdle was lack of a docker image compatible with the platform, which was a hard stop.
Restic is a static binary, and cross platform. Why is a docker container needed?
It’s not needed, as such. It’s potentially simpler to set up if you deploy to multiple platforms and use Docker a lot.
I’m replacing a Raspberry Pi that’s running a lot of native software such as Home Assistant, Pi Hole, and a few other things, backed up by Restic, with a new system based largely on docker images. I got all the other software working using Docker images, but Restic didn’t have a cross platform docker container. That wasn’t a problem, I just used the native binary, but it’s a nice feature that I could now use the docker container if I wanted to. I’d go and try it now, but it took me quite a while to work it out because the documentation isn’t great, and I deleted it when I moved back to using the native binary, so it would take too long to bother with.
You can drop the binary inside any container or image. Again, unlike other binaries, restic binary has no dependencies and works standalone everywhere.