Skip to content

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.

Notifications You must be signed in to change notification settings

vcputtini/l1borg

Repository files navigation

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

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 https://borgbackup.readthedocs.io/en/stable/index.html
Copyright (C) 2015-2020 The Borg Collective https://borgbackup.readthedocs.io/en/stable/authors.html
Copyright (C) 2010-2014 Jonas Borgström
jonas@borgstrom.se All rights reserved.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published