Skip to main content

Tests codecov

ezbak

ezbak is a backup manager. It creates, prunes, and restores compressed archives of files and directories on the local filesystem, in AWS S3, or both, with regex file filtering, count-based and time-based retention, and point-in-time restore. It was written primarily to move shared state between jobs and hosts in an orchestrated environment like Nomad or Kubernetes. In that setting the Docker container is the main way to run it; a Python package and a command-line tool run the same backups from your own code or a shell.

ezbak is a small, focused backup manager. It does not aim to replace restic, borg, or a full backup system.

Documentation

Full documentation lives at natelandau.github.io/ezbak:

Install

uv add ezbak            # Python package
uv tool install ezbak   # command-line tool
docker pull ghcr.io/natelandau/ezbak:latest   # container

ezbak requires Python 3.11 or higher.

Quickstart

Each interface runs the same backup. Every example below writes a my-backup-<timestamp>.tgz archive to the storage location.

Python:

from ezbak import ezbak

backups = ezbak(name="my-backup", source_paths=["/data"], storage_paths=["/backups"], keep_last=7)
backups.create_backup()
backups.restore_backup(restore_path="/restore")

Command line:

ezbak --name my-backup --storage ~/Backups create --source ~/Documents

Container:

docker run -it \
    -v /path/to/source:/source:ro \
    -v /path/to/backups:/backups \
    -e EZBAK_ACTION=backup \
    -e EZBAK_NAME=my-backup \
    -e EZBAK_SOURCE_PATHS=/source \
    -e EZBAK_STORAGE_PATHS=/backups \
    -e EZBAK_KEEP_LAST=7 \
    ghcr.io/natelandau/ezbak:latest

See the quickstart for listing and restoring across all three.

Contributing

See CONTRIBUTING.md.

Download files

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

Source Distribution

ezbak-1.3.1.tar.gz (53.1 kB view details)

Uploaded Source

Built Distribution

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

ezbak-1.3.1-py3-none-any.whl (64.2 kB view details)

Uploaded Python 3

File details

Details for the file ezbak-1.3.1.tar.gz.

File metadata

  • Download URL: ezbak-1.3.1.tar.gz
  • Upload date:
  • Size: 53.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for ezbak-1.3.1.tar.gz
Algorithm Hash digest
SHA256 706ef3d176161bd5de39e85b9ce8e3a052e6e90efbb48756d5fd6ff9d121f281
MD5 3c4319a5e6c9271668413d06a5db9235
BLAKE2b-256 40ad7de3bcd88a1b216e16a3f7b0b37fd77c5ca17b51893a8da085a48a8717e9

See more details on using hashes here.

File details

Details for the file ezbak-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: ezbak-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 64.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for ezbak-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6ac0ffdc28c2a88ae4d77fb6e8537968c6cd20e268075e6532491d04d0f9ae92
MD5 167f7dcf09c493ea71ed14d9238bedd7
BLAKE2b-256 95d0a31bb1a52e0264bc12cc92689b72093edf8af4bbba4ce0f03864de3a0448

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 Sentry Error logging StatusPage Status page