Skip to main content

RunUp is a backup system that can be managed by command line.

Project description

RunUp

GitHub Python version PyPI

RunUp is a backup solution that implements a new backup strategy: fragmented backups. This solution solves all the drawbacks of traditional strategies.

Fragmented backup

There are three typical backup strategies: Full backups, incremental backups and differential backups:

  • Full backups duplicate unmodified data and are very slow to create, but are easier and faster to restore.

  • Differential backups still create full backups (say weekly) and create partial backups containing only the new and modified files since the last full backup (say daily). This may reduce data duplication somewhat and makes partial backups faster than the full backup, but it makes restore slower because you need to restore the last full backup and the last differential backup.

  • Incremental backups work in the same way as differential backups but partial backups only contain the files changed since the last full or partial backup. This reduces data duplication even further and makes partial backups faster, but makes data restoration even slower, as you will have to restore the last full backup and all partial backups created after the full backup, in order.

With the above information in mind, I have come up with fragmented backups, a new backup strategy that only creates a full backup the first time, then all backups will be incremental backups. But the unchanged files are associated with the previously stored files, so during the backup restore, it is possible to "merge the fragments" and make the restore as fast as if it were a full backup.

Key features

Saves disk space

Files are never duplicated in the backup storage, even if they are duplicated in the repository or renamed without changing the content.

Create faster backups

Each backup contains only one copy of new or changed files. This allows us to create backups faster, saving time and memory usage.

Quick restoration of backups

When restoring data, we handle it as a full backup, so we don't have the inconvenience of tools that implement traditional partial backup strategies.

Usage

Install RunUp with PIP:

python3 -m pip install runup

Create a runup.yaml file with the configuration of your backups. This is an example to back up all files in the same directory as the configuration file:

version: '1'

project:
  projectname:
    include: 
      - '.'

Initialize RunUp.

runup init

Create a backup

runup backup

Restore the latest backup

runup restore

For details or more advanced options, see the documentation.

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

Contribution

Contributions are welcome! See the Contributor's Guide.

Donation

This is a Free Open Source Software. If this project is of value to you, consider making a donation.

Donate me

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

RunUp-0.1b4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.24+ x86-64

File details

Details for the file RunUp-0.1b4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for RunUp-0.1b4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 f3b41ca7f838e6d4c6cb8295b274ac5e400ec49078abb990acec33be82055876
MD5 5f27585175330662a270c945c86e2e22
BLAKE2b-256 b503c27d4f168af12729ab9c675396c92ddb2f8c28830e4fe8e3ab7802993e21

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