Skip to main content

One S3 backup, encrypted on the fly.

Project description

Description

This tool is used at Seantis to create backups stored on various S3 compatible services using a very limited subset of S3 commands.

This is what you need to know:

  • Spare should not be used in production yet! Use at your own risk.

  • Buckets should be managed by spare exclusively, other files are deleted!

  • Each hostname must have a separate bucket for each backed up path.

  • Spare stores exactly one copy of your data.

  • Files are compressed using LZMA and encrypted on the client using AES-SIV.

  • During upload, spare is limited to one core and less than 100MiB of memory.

  • Duplicated files are stored only once.

  • If you forget your password, you cannot restore your files.

  • Spare is meant to be used with configuration management, the cli is minimal.

  • Python 3.6.2+ is required.

Usage

To install spare:

pip install spare

To set the connection parameters:

export SPARE_ENDPOINT=host
export SPARE_ACCESS_KEY=access-key
export SPARE_SECRET_KEY=secret-key

To backup a folder:

spare create --password my-password --bucket my-bucket --path /my-path

To restore a backup:

spare restore --password my-password --bucket my-bucket --path /my-path

To verify the backup (downloads everything!):

spare verify --password my-password --bucket my-bucket --path /my-path

Run the Tests

Spare uses Minio <https://www.minio.io> to run tests against a real object storage server. As a result it can take a bit for the first test run to complete, as Minio is downloaded and stored in the pytest cache directory:

pip install -e '.[test]'
py.test

Build Status

Build Status

License

spare is released under the MIT license

Changelog

0.2.6 (2019-05-09)

  • Fixes tests failing on Travis, again. [href]

0.2.5 (2019-05-09)

  • Fixes tests failing on Travis. [href]

0.2.4 (2019-05-09)

  • Stops showing errors when files go missing during operation. [href]

0.2.3 (2018-06-20)

  • Fixes large snapshots getting pruned after creation. [href]

0.2.2 (2018-05-25)

  • Fixes tests. [href]

0.2.1 (2018-05-25)

  • Delay sigterm handling during backup and restore operations. [href]

  • Changes ‘–force’ into a flag. [href]

0.2.0 (2018-05-11)

  • Adds the inode to the snapshot identity to ensure that a newly setup host doesn’t overwrite existing backups. [href]

0.1.3 (2018-05-10)

  • Adds the ability to exclude files from the backup. [href]

0.1.2 (2018-05-10)

  • Increases the download speed during restore operations. [href]

  • Shows a warning when a user/group could not be found during restore. [href]

  • Lowers the timeouts and retry rates. [href]

0.1.1 (2018-05-04)

  • Lowers the number of requests needed to upload data. [href]

0.1.0 (2018-04-26)

  • Initial Release. [href]

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

spare-0.2.6.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

spare-0.2.6-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file spare-0.2.6.tar.gz.

File metadata

  • Download URL: spare-0.2.6.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for spare-0.2.6.tar.gz
Algorithm Hash digest
SHA256 fa5629a28d409804ddbe5e2b42876ef9cb914ee6455d72cfbdea10a8a0a85a9f
MD5 388be8591095632f94b806b5311fb8dc
BLAKE2b-256 7c40da87f6e0061bed907945700956889d7ff0b4e30c05d40adafaa68973fa2c

See more details on using hashes here.

File details

Details for the file spare-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: spare-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for spare-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0697d9e1fc5742d4a77259eec47ede18387b0fb98c6bf0dbc49f5a918eca4a0b
MD5 885d14c11ff79059a857670bf269de84
BLAKE2b-256 e2ab42024be7a6ca7c9ad094939baef996ee4b3996cae1f1f2cac0237332888e

See more details on using hashes here.

Supported by

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