Defines your backup strategy based on bash commands
Project description
Bashbackup

It is a python application that allows you to easily describe the backup steps you want. It is possible to describe the steps in YAML or in CLI. The tool also allows to manage the restoration based on the backup steps.
Installation
pip install bashckup
Examples
With YAML file
bashckup backup file --config-file /home/bashckup/config.yml
Config file:
Show up
---
- name: Backup MariaDB database
id: backup-maria-db2
reader:
module: mariaDBDatabase
args:
database-name: "myDatabase"
transformers:
- gzip
- crypt:
args:
password-file: password-safe.txt
writer:
module: outputFile
args:
path: ./
file-name: output.sql.gz
- name: Backup website folder
id: backup-website
reader:
module: files
args:
path: testfolder/
incremental-metadata-file-prefix: tar-snap
level-0-frequency: 'weekly'
transformers:
- gzip:
args:
level: 9
writer:
module: outputFile
args:
path: ./
file-name: backup.tar.gz
post-backup:
- rsync:
args:
ip-addr: 10.8.0.1
dest-module: test
dest-folder: bck
user: user
- cleanFolder:
args:
retention: 31
With CLI inputs
bashckup backup cli --reader-module mariaDBDatabase --reader-args database-name='myDatabase' --transformer-module gzip --transformer-args nop --transformer-module crypt --transformer-args password-file=password-safe.txt --writer-module outputFile --writer-args path='.' file-name='output.sql.gz'
Table of content
TODO
Modules
| Reader | Transformer | Writer | Post backup |
|---|---|---|---|
| files | gzip | outputFile | cleanFolder |
| mariaDBDatabase | crypt | - | rsync |
Readers
File reader
Use tar bash command and allows to save files from file systems
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| path | Folder path for the backup. It will create a sub-folder with the backup id | True | - |
| incremental-metadata-file-prefix | Name of metadata-file used to store difference between backups | False | - |
| level-0-frequency | When a full backup have to be done ? You have to choose in ['weekly', 'monthly'] | False | weekly |
MariaDB database
⚠️You have to be root to use it, no authentication method is available yet ⚠️
Use mysqldump bash command and allows to generate a backup based on SQL instructions.
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| database-name | Name of mariadb database | True | - |
Transformers
Gzip
Use gzip bash command and allows to compress.
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| level | Regulate the speed of compression using the specified digit #, where 1 indicates the fastest compression method (less compression) and 9 indicates the slowest compression method (best compression). The default compression level is 6 (that is, biased towards high compression at expense of speed). | False | 6 |
Crypt
Use openssl bash command and allows to do symmetric encryption.
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| password-file | Path to the file that contains the password | False | - |
Writer
Output file
Use cat bash command and allows to save backup on fil systems.
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| path | Path to the output folder | True | - |
| file-name | File name of the backup file | True | - |
Post backup
Clean folder
Remove outdated backups
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| retention | Retention duration in days | True | - |
Rsync
⚠️You have to use password-file if user needs a password to login, otherwise backup will be stuck waiting password
from stdin ⚠️
Use rsync bash command and allows to push backups's folder to a remote location.
password-file must point to a file that must be owned by the user running "bashckup", and it must be accessible only
by him (chmod 600)
Configuration
| Parameter name | Description | Required | Default value |
|---|---|---|---|
| ip-addr | IP address of remote host | True | - |
| dest-module | Destination rsyncd module | False | - |
| dest-folder | Destination folder | True | - |
| user | Username to use to log in | True | - |
| password-file | Path to the file that contains the password | False | - |
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bashckup-0.0.2.tar.gz.
File metadata
- Download URL: bashckup-0.0.2.tar.gz
- Upload date:
- Size: 6.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f34692195a1fa184855ba6245182e4c580975125b71d95bef66000d88d4bebed
|
|
| MD5 |
2d86deddd63e8943107c0f39ae2ec9bc
|
|
| BLAKE2b-256 |
4c245ec010a41732e49a7c9ace2b365fcd48f54c562103d42ba41b3b58540bf9
|
File details
Details for the file bashckup-0.0.2-py3-none-any.whl.
File metadata
- Download URL: bashckup-0.0.2-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09d88e958b624df6b0b9fb1a3c2b15d5edcfd6d1af08d923e12d9b509c78dbdb
|
|
| MD5 |
419f0b084bf737c3f103313c9979907d
|
|
| BLAKE2b-256 |
d39c86399d033f96f79cd2b5fdf390b57126fdff432d095d5a9a2597da8fbf08
|