The goal of the project is to simplify backup creation.
Project description
Backup Utils
The goal of this project is to create a front to backup program like Borg. Indeed, Borg is a really great tool for backup, but I always write a bash script to specify directories I want to save. I also use Rclone to synchronize my backup to a remote. And finally I need to backup my database.
There are three steps to backup :
- Database export
- Archiving
- Synchronize
For each step, you can use multiple driver for multiple tool. Also if something go wrong, all Exceptions are catch to send a notification.
By default, database export use mysql, archiving borg, and synchronize rclone.
1. Installation
You can use pip
pip install backup-utils
You can build the project yourself:
git clone https://gitlab.com/Oprax/backup-utils.git
cd backup-utils
make build # will produce a `dist/backup_utils.pyz` file
2. Usage
usage: backup_utils.pyz [-h] [-v] [-r] [-n] [-d DIR]
Process some integers.
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-r, --run Create a new backup, default command if no args given
-n, --notify Send a notification to test notifier settings
-d DIR, --dir DIR Add a new directory to the backup list, so next run it
will be backup
3. Example
backup-utils -d /an/absolute/path -d ./a/relative/path
backup-utils --dir ~/user/path
backup-utils --run # the long one
backup-utils -r # the shortcut
backup-utils # `run` is the default command if there are no argument
4. Configuration
The configuration file is a JSON file store in ~/.config/bak-utils/config.json
.
You can see config.example.json
to have an example.
Root object:
directories
: A list of directories to backup, please use--dir
command to add a new directory.repo
: The directory containing the backup and that will be synchronize to a remote server.backup
,sync
,database
andnotifier
: are tasks objects.
For each tasks object, the most important key is the driver
.
backup
, sync
and database
objects has hook, which execute a shell command.
For the moment there are pre_hook
and post_hook
which is execute before and after each tasks.
If there is no database
key in the config file, this task will be skipped.
Database task as a backup_directory
to specify in which directy, SQL file will be save.
The other params is depending the driver. See below for more details.
5. Drivers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for backup_utils-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a742208d043c8e6f0ec8378d5debbe5f3a5a0144872cd425ef72723e58e3b17 |
|
MD5 | 703d748d6a5628950e300595edacc9af |
|
BLAKE2b-256 | d4406cb62621ddcb65f4d3a6d33963809763ec96a42f8efa9b9750345051427e |