Skip to main content

A simple tool to fetch backups from the TrueNAS via the JSON-RPC protocol

Project description

Usage

truenas-backup is a simple tool to fetch configuration backups from the TrueNAS installation using the JSON-RPC API.

Installation

As the API client is not published as a package, you’ll need to install the dependency manually

pip install git+https://github.com/truenas/api_client.git

Arguments

-h, --help

show the help message and exit.

-c FILE, --config FILE

the configuration file (default: ~/.config/truenas-backup/config.yml)

-o FILE, --output FILE

the output file. The file name can contain strftime directives. If the argument is specified, directory, name and keep fields of the configuration are ignored.

Configuration file

The truenas-backup needs a configuration file (default ~/.config/truenas-backup/config.yml). As the file contains secrets, take care to set reasonable permissions. The file is in the YAML format.

Configuration file

truenas:
   host: truenas.local[:port]
   api_user: truenas_admin
   api_key: ...
   ssl_verify: false
   call_timeout: 20
   backup_password: ...
output:
   directory: .
   name: "truenas-%Y%m%d-%H%M.backup"
   keep: 12

All fields except api_user and api_key are optional. The user the API key was generated for needs to have the FULL_ADMIN role (TrueNAS requirement).

host is a hostname or an IP address, and an optional port. Secure connection will be used.

The backup file is compressed using gzip first, then encrypted if backup_password is specified. It can be decrypted and unpacked manually using

openssl aes-256-cbc -d -md sha512 -pbkdf2 -iter 100000 -in ... | tar tvfz -

name specifies the name of the output file. strftime directives are allowed.

keep removes all but the most recent *.backup files from the directory, that in this case has to be specified and has to be an absolute path.

directory has to already exist. As the backup is not encrypted and contains secrets the permissions should be set accordingly.

Observability

The backups done can be exported through prometheus text-file format and consumed by the node exporter’s textfile collector. If the metrics key exists, the file is atomically populated after each backup run.

metrics:
    directory: "/var/local/lib/prom_metrics"
    suffix: "my-truenas"

directory is mandatory and specifies the path of the directory passed as the --collector.textfile.directory for the node_exporter. It has to already exist. suffix is optional and will be appended to the file name to distinguish metrics files generated by different configurations. For the above configuration the full file name will be /var/local/lib/prom_metrics/truenas-backup-my-truenas.prom.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

truenas_backup_tool-0.1.1.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

truenas_backup_tool-0.1.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file truenas_backup_tool-0.1.1.tar.gz.

File metadata

  • Download URL: truenas_backup_tool-0.1.1.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for truenas_backup_tool-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c8837e8fab5b13dd27ac1a713ce35611b928b9af8b2f03c5041086908c732861
MD5 d3b67f63a4539e5b85652d810fdc0945
BLAKE2b-256 55ac24a1bcda45a396df8f12adb68ab497ec610f6f5d0195fafcb19c0f2c0871

See more details on using hashes here.

File details

Details for the file truenas_backup_tool-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for truenas_backup_tool-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e8c1edb5c410889b1b2ab2d4085ccccfbf4727770f4e777aaf89836f7d6dd136
MD5 017835c0f5d2c10977dbf787363c7b80
BLAKE2b-256 74941efb553d3a55a88cd92d0f1f35c5c555b1806bafa4ddf5941851d04c7cad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page