grebakker

Home

License: GPL PyPI version test Downloads Downloads Coverage Status Documentation Status Dependecies

Donate

grebakker - a backup solution for hackers (just for the acronym :-) )

Introduction

grebakker is a script that backups files and folders. grebakker uses json to define what should be backupped and how - copied or compressed. The json files can reference each other. grebakker does not need any external applications, libraries, or modules besides plain Python.

grebakker is in a very early development stage. I use it successfully, but there are different things that should be streamlined. It (currently) only supports complete backups, no incremental backups etc. I would be glad to get any feedback on or contribution to this.

Usage

Generate a backup definition of what to do in json and store it in the folder as grebakker.json:

{
    "destination": "d/",
    "copy": [ 
        "document.pdf",
        "old_backups"
    ],
    "compress": [
        "repository",
        { "name": "current", "exclude": ["venv"] }
    ],
    "subfolders": [ "attic" ]
}

Then run grebakker:

python src\grebakker.py backup f:\backup\2025_05 d:\

That's all... Your files and folders are backupped to the subfolder d/ of the destination folder f:\backup\2025_05 - the file document.pdf and the folder old_backups are copied to the destination f:\backup\2025_05\d, the folder repository and current are compressed (excluding the sub-folder venv in current) and stored in f:\backup\2025_05\d as well. grebakker continues with backupping using a backup definition stored in the sub-folder attic.

Documentation

grebakker is meant to be run on the command line. The documentation consists of a user manual and a man-page like call documentation (yet incomplete). The glossary may be of help.

If you want to contribute, you may check the API documentation or visit grebakker on github where besides the code you may find the grebakker issue tracker or discussions about grebakker.

Additional documentation includes a page with relevant links or the ChangeLog.

Installation

You may install the latest release using pip:

python -m pip install grebakker

Or download the latest release from github. You may as well clone or download the grebakker git repository. There is also a page about installing grebakker which lists further options.

License

grebakker is licensed under the GPLv3.

Background

I backup all my projects frequently. Being bored of doing it manually, I wrote grebakker for doing it for me.

Status & Contributing

grebakker is in an early development stage. I suppose I will extend it in the future, but I am not under pressure.

Let me know if you need something by adding an issue or by dropping me a mail. I am very interested in opinions, ideas, etc.