deriva-backup-cli

The deriva-backup-cli is a command-line utility for orchestrating the backup of schema and tabular data from ERMRest catalogs and file assets from Hatrac object stores to a local directory either as a bag archive or plain directory.

Features

  • Backup schema, tabular data and file assets to Deriva catalogs to a bag or plain directory on a mounted filesystem.
  • File assets stored in bags can be stored as remote file references in the bag’s fetch.txt file (aka a “holey bag”).

NOTE: Automatic file asset backup is not currently implemented.

Command-Line options

usage: deriva-backup-cli.py [-h] [--version] [--quiet] [--debug]
                   [--credential-file <file>]
                   [--token <auth-token> | --oauth2-token <oauth2-token>]
                   [--config-file <config file>] [--catalog <1>]
                   [--no-data | --no-schema]
                   [--no-bag | --include-assets {full,references}]
                   [--bag-archiver {zip,tgz,bz2}]
                   [--exclude-data <schema>, <schema:table>, ...]
                   <host> <output dir> ...

Deriva Catalog Backup Utility - CLI

positional arguments:
  <host>                Fully qualified host name.
  <output dir>          Path to an output directory.
  [key=value key=value ...]
                        Variable length of whitespace-delimited key=value pair
                        arguments used for string interpolation in specific
                        parts of the configuration file. For example:
                        key1=value1 key2=value2

optional arguments:
  -h, --help            show this help message and exit
  --version             Print version and exit.
  --quiet               Suppress logging output.
  --debug               Enable debug logging output.
  --credential-file <file>
                        Optional path to a credential file.
  --token <auth-token>  Authorization bearer token.
  --oauth2-token <oauth2-token>
                        OAuth2 bearer token.
  --config-file <config file>
                        Path to a configuration file.
  --catalog <1>         Catalog number. Default: 1
  --no-data             Do not export data, export schema only.
  --no-schema           Do not export schema, export data only.
  --no-bag              Do not store the output in a bag container.
  --include-assets {full,references}
                        Include related file assets in output bag. Use "full"
                        to download related assets to the output bag. Use
                        "references" to store references to asset files in the
                        bag's "fetch.txt" file.
  --bag-archiver {zip,tgz,bz2}
                        Format for compressed bag output.
  --exclude-data <schema>, <schema:table>, ...
                        List of comma-delimited schema-name and/or schema-
                        name/table-name to exclude from data export, in the
                        form <schema> or <schema:table>.

Positional arguments:

<host>

All backup functions are performed with respect to a specific host and most hosts will require authentication.

<input path>

A path to an output directory is required. This can be an absolute path or a path relative to the current working directory.

Optional arguments:

--token

The CLI accepts an authentication token with the --token TOKEN option. If this option is not given, it will look in the user home dir where the DERIVA-Auth client would store the credentials.

--oauth2-token

An OAuth2 bearer token. This argument is mutually exclusive to the --token option.

--credential-file

If --token or --oauth2-token is not specified, the program will look in the user home dir where the DERIVA-Auth client would store the credentials. Use the --credential file argument to override this behavior and specify an alternative credential file.

--catalog

The catalog number (or path specifier). Defaults to 1.

--no-data

Do not export data, export schema only.

--no-schema

Do not export schema, export data only.

--no-bag

Do not store the output in a bag container.

--bag-archiver {zip,tgz,bz2}

Compression format for output bag archive.

--include-assets {full,references}

Include related file assets in output bag. Use full to download related assets to the output bag. Use references to store references to asset files in the bag’s fetch.txt file.

--exclude-data <schema>, <schema:table>, ...

List of comma-delimited schema-name and/or schema-name/table-name to exclude from data export, in the form schema or schema:table.

For example:

--exclude data public,demo:samples