bupstash-get(1) =============== ## SYNOPSIS Get data from a bupstash repository. `bupstash get [OPTIONS] QUERY... ` ## DESCRIPTION `bupstash get` fetches and decrypts data stored in a bupstash repository, sending it to stdout. If the requested item was saved as a directory, the command converts it into a tar stream. The item that is fetched is chosen based on a simple query against the tags specified when saving data with `bupstash put`. ## QUERY LANGUAGE For full documentation on the query language, see bupstash-query-language(7). ## QUERY CACHING The get command uses the same query caching mechanisms as bupstash-list(1), check that page for more information on the query cache. ## SPARSE FILES When getting a directory as a tarball sparse files are not treated specially, to restore sparse files while preserving the file holes use `bupstash restore` instead. ## OPTIONS * -r, --repository REPO: The repository to connect to, , may be of the form `ssh://$SERVER/$PATH` for remote repositories if ssh access is configured. If not specified, is set to `BUPSTASH_REPOSITORY`. * -k, --key KEY: Key that will be used to decrypt data and metadata. If not set, defaults to `BUPSTASH_KEY`. * --pick PATH: Fetch an individual file or sub-directory from a snapshot. * --query-cache PATH: Path to the query-cache file, defaults to one of the following, in order, provided the appropriate environment variables are set, `$BUPSTASH_QUERY_CACHE`, `$XDG_CACHE_HOME/.cache/bupstash/bupstash.qcache` or `$HOME/.cache/bupstash/bupstash.qcache`. * --utc-timestamps: Display and search against timestamps in utc time instead of local time. * --no-progress: Suppress progress indicators (Progress indicators are also suppressed when stderr is not an interactive terminal). * -q, --quiet: Be quiet, implies --no-progress. ## ENVIRONMENT * BUPSTASH_REPOSITORY: The repository to connect to. May be of the form `ssh://$SERVER/$PATH` for remote repositories if ssh access is configured. * BUPSTASH_REPOSITORY_COMMAND: A command to run to connect to an instance of bupstash-serve(1). This allows more complex connections to the repository for less common use cases. * BUPSTASH_KEY: Path to the key that will be used for decrypting data and metadata. * BUPSTASH_KEY_COMMAND: A command to run that must print the key data, can be used instead of BUPSTASH_KEY to fetch the key from arbitrary locations such as the network or other secret storage. * BUPSTASH_QUERY_CACHE: Path to the query cache file to use. ## EXAMPLES ### Get an item with a specific id ``` $ bupstash get id=14ebd2073b258b1f55c5bbc889c49db4 > ./data.file ``` ### Get an item by name and timestamp ``` $ bupstash get name=backup.tar and timestamp=2020/19/* > ./restore.tar ``` ### Get a file or sub-tar from a directory snapshot ``` $ bupstash get --pick=path/to/file.txt id=$id $ bupstash get --pick=path/to/dir id=$id | tar ... ``` ### Get a tarball The builtin directory put creates a tarball from a directory, so to extract it we use tar. ``` # Snapshot a directory. $ id=$(bupstash put ./data) # Fetch the contents of a snapshot and extract the contents with tar $ mkdir restore $ bupstash get id=$id | tar -C ./restore -xvf - ``` ## SEE ALSO bupstash(1), bupstash-put(1), bupstash-list(1), bupstash-restore(1), bupstash-rm(1), bupstash-keyfiles(7), bupstash-query-language(7)