# xbackup This is a convenience wrapper around the Borg backup tool. ## Expected Environment This tool is designed for Arch Linux. Because it is written in Python and has minimal dependencies it should be easy to adapt it to other Linux distributions. These dependencies have to be installed: - [python3](https://www.python.org/) - [borg](https://www.borgbackup.org/) ## Installation Please select the right subsection for your system. ### Arch Linux Visit my [packaging repository ](https://gitea.xengineering.eu/xengineering/pkgbuilds/src/branch/master/xbackup) to get the build files. You can then install the software like an AUR package following the [recommendations](https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages) in the Arch Linux wiki. ### Other Linux Distributions The Makefile of this repository will help you to install the software or create a tar archive of a certain commit (which could be helpful for packaging). Keep in mind, that there is no maintained way to uninstall the software via the Makefile! The reason for that is an additional amount of work, the possibility of bugs in the uninstall routine and the existence of package managers for Linux which guarantee you correct uninstallation. The Makefile of this repository contains an `install` target. Simply run ``` sudo make install ``` to install it to your system. Alternatively you can install it to a fake root folder: ``` make DESTDIR="path/to/my/fakeroot" install ``` or create only a tar archive from this source for external packaging: ``` make tarball ``` ## Usage Please edit the configuration file at `/etc/xbackup/config.json` before you run the software. It contains suitable defaults for a full system backup which is the main purpose of this script. Using the default configuration, xbackup will include everything from the root folder `/` blacklisting only folders which are not reasonable for a backup, because they are virtual filesystems from the Linux kernel (like `/dev`), only contain temporary data (like `/tmp`) or are not part of the system itself (like `/mnt` or `/media`). After configuration you can run the backup like this: ``` sudo xbackup -c path/to/my/config.json backup ``` In case of the default configuration location `/etc/xbackup/config.json` you can skip the `-c` option. In addition you can select `--script` to avoid the interactive execution of the script. For further details run `xbackup --help`. ## Done / Features (Last finished task first) - [x] move Arch Linux packaging to pkgbuilds repository - [x] manual backup functionality / MVP - [x] config parsing - [x] argument parsing - [x] implement Arch Linux Packaging - [x] setup project structure ## To Do / Feature Requests (Highest priority first) - [ ] implement prune command - [ ] release v1.0.0 - [ ] MariaDB fullbackup - [ ] backup systemd daemon - [ ] backup transfer tool (?) - [ ] backup diff tool (backup vs. filesystem) - [ ] backup restore tool with qemu (for testing)