An open API service indexing awesome lists of open source software.

https://github.com/vcputtini/l1borg

l1borg is a utility designed to solve some of my needs for automating the use of BorgBackup. The l1borg load the settings for the backup running from the XML file l1borg.xml, and run the BorgBackup with the necessary parameters, in addition to being able to execute the native BorgBackup commands like: list, info, mount and so on.
https://github.com/vcputtini/l1borg

backup borg borgbackup cpp cpp17

Last synced: 10 months ago
JSON representation

l1borg is a utility designed to solve some of my needs for automating the use of BorgBackup. The l1borg load the settings for the backup running from the XML file l1borg.xml, and run the BorgBackup with the necessary parameters, in addition to being able to execute the native BorgBackup commands like: list, info, mount and so on.

Awesome Lists containing this project

README

          

## l1borg

The [1]BorgBackup is an amazing program to backup both local and remote using deduplication techniques. It is very simple to use and its features allow us to create scripts to customize and automate your operation.

l1borg is a utility designed to solve some of my needs for automating the use of BorgBackup.

The l1borg load the settings for the backup running from the XML file l1borg.xml, and run the BorgBackup with the necessary parameters.

l1borg doesn't handle remote repositories, but only local.

At thist time, I don't really intend to make it a utility with many functions, and its evolution is linked to my usage needs, but feel free to use it as a starting point for a fork or new ideas.

l1borg was coded entirely in C++. As I consider QtCreator(tm) to be an excellent development environment, I use it for my projects, even if these don't directly involve using the Qt(tm) tools.

### Dependencies for compilation:
gcc/g++ which meets the c++17
Libs: tinyxml2 and Boost

### My environment

Fedora 33

gcc (GCC) 10.2.1 20201125

QtCreator 4.14 (Qt 5.15.2)

cmake version 3.18.4

Boost 1.73

tinyxml2-7.0.1-5

### Flowchart
![](docs/flowchart.png)

### Usage

__l1borg__ --help

Valid options are:

--init-repo : Initialize all repositories.

--make-backup : Make backup.

--cmd : Execute a BorgBackup command.

    Double quotes are mandatory:

    e.g.: l1borg --cmd info PATH/REPONAME --prefix=srv1

(the _--list_, _--info_, _--diff_ and _[u]mount_ commands are only simplifications of analogous commands in BorgBackup.)

--info : all | REPONAME[::FILENAME]

    NOTE: Enter only the repository name without the path: e.g: --info R1 | --info R1::archive

--list : all | REPONAME[::FILENAME]"

    NOTE: Enter only the repository name without the path: e.g: --list R1 | --list R1::archive

--diff : REPONAME::ARCHIVE1 ARCHIVE2

    NOTE: Enter only the repository name without the path

--[u]mount : Mount/umount an archive from a repository

    --mount R1::ARCHIVE MOUNTPOINT

    --umount MOUNTPOINT"

__l1borg.xml__ Sample: See docs/l1borg.xml

## References
[1] BorgBackup

Copyright (C) 2015-2020 The Borg Collective


Copyright (C) 2010-2014 Jonas Borgström
All rights reserved.