https://github.com/clabe45/detimer
Supercharged rdiff-backup wrapper
https://github.com/clabe45/detimer
backup rdiff-backup
Last synced: 12 months ago
JSON representation
Supercharged rdiff-backup wrapper
- Host: GitHub
- URL: https://github.com/clabe45/detimer
- Owner: clabe45
- License: gpl-3.0
- Created: 2022-04-08T00:23:19.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-04-30T23:29:25.000Z (about 3 years ago)
- Last Synced: 2025-05-31T08:33:24.423Z (about 1 year ago)
- Topics: backup, rdiff-backup
- Language: Python
- Homepage:
- Size: 97.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Detimer
Detimer is a backup manager that allows you to easily configure backups in a
yaml file and run them. It uses [rdiff-backup](https://rdiff-backup.net) to
perform reverse differential backups.
:warning: **This project is still in early development and is not ready for
production use.**
## Features
- [x] Configure backup tasks in a yaml file
- [x] Create backups
- [x] Compression of backup files and transfer over SSH (provided by
rdiff-backup)
- [ ] Restore backups
- [ ] List backups
- [ ] Delete backups
- [ ] Schedule backups
## Overview
A **root** is a backup task, including information such as the directory to back
up, where to store it and exclusion rules.
## Installation
You will need
[rdiff-backup](https://github.com/rdiff-backup/rdiff-backup/releases) installed.
Then you can install detimer:
```
pip install detimer
```
## Usage
```sh
$ detimer -h
Usage: detimer [OPTIONS] COMMAND [ARGS]...
Simple backup manager
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
Commands:
backup Backup specified roots
list List all roots
```
## Configuration
To add a root, edit `config.yml` in:
- OS X: **~/Library/Application Support/Detimer**
- Unix: **~/.config/detimer**
- Windows: **%USERPROFILE%\AppData\Roaming\Detimer**
Each root can have the following properties:
- `name` (required) - Name of the root
- `src` (required) - Absolute path of the source directory
- `dest` (required) - Absolute path of the destination directory
- `special_files` - How to handle special files (e.g. symlinks, devices, etc.)
- `detect` - Let rdiff-backup decide based on the OS (default)
- `include` - Include special files in the backup
- `exclude` - Exclude special files from the backup
- `match` - Inclusion/exclusion rules. Patterns starting with `-` are excluded,
and patterns starting with `+` are force-included. Any inclusion lines must
precede their corresponding exclusion lines (see the example below).
**Example**:
```yml
roots:
- name: mega
src: /home/USER
dest: /mega/backups
special_files: exclude # detect|include|exclude
match: |
- Downloads
- **/node_modules
+ another-excluded-dir/except-this-file
- another-excluded-dir
```
## Contributing
Pull Requests are welcome! Please open an issue before making major changes.
Additionally, we use
[conventional commits](https://www.conventionalcommits.org/en/v1.0.0/).
## License
Licensed under [GNU GPLv3](./LICENSE)