77 lines
2.6 KiB
Markdown
77 lines
2.6 KiB
Markdown
simple_backup
|
|
============
|
|
A simple backup script
|
|
|
|
## Description
|
|
simple_backup is a Python script that allows you to backup your files.
|
|
Parameters like input files/directories, output directory etc. can be specified in a configuration file, or on the command line.
|
|
Run:
|
|
|
|
```bash
|
|
simple_backup -h
|
|
```
|
|
|
|
to print all possible command line options.
|
|
|
|
## Dependencies
|
|
The script uses rsync to actually run the backup, so you will have to install it on your system. For example on Arch Linux:
|
|
|
|
```bash
|
|
sudo pacman -Syu rsync
|
|
```
|
|
|
|
It's also required to have python-dotenv
|
|
|
|
Optional dependencies are systemd-python to enable using systemd journal for logging, and dbus-python for desktop notifications.
|
|
|
|
## Install
|
|
To install the program, first clone the repository:
|
|
|
|
```bash
|
|
git clone https://github.com/Fuxino/simple_backup.git
|
|
```
|
|
|
|
Then install the tools required to build the package:
|
|
|
|
```bash
|
|
pip install --upgrade build wheel
|
|
```
|
|
|
|
Finally, run:
|
|
|
|
```bash
|
|
cd simple_backup
|
|
python -m build --wheel
|
|
python -m pip install dist/*.whl
|
|
```
|
|
|
|
For Arch Linux and Arch-based distros, two packages are available in the AUR (aur.archlinux.org):
|
|
- **simple_backup** for the release version
|
|
- **simple_backup-git** for the git version
|
|
|
|
## Old backups
|
|
The number of old backups to keep can be set with the --keep (or -k) argument (or in the configuration file).
|
|
Old backups are only removed if rsync completes successfully, so that they are not deleted when the new backup may be incomplete.
|
|
The only rsync error that is ignored is return code 24 (source files vanished during the transfer), which is common when backing up a live system.
|
|
|
|
## Remote backup
|
|
> **Warning**
|
|
> This feature is experimental
|
|
|
|
It's possible to use a remote server as destination for the backup. Just use the --username (or -u) and --host arguments (or set them in the configuration file).
|
|
For this to work, rsync must be installed on the server too.
|
|
|
|
### Server authentication
|
|
The best way to handle the authentication is to have an ssh agent running on your system, otherwise if a passphrase is necessary to unlock the ssh key, it will be necessary to enter it more than once.
|
|
If needed, it's possible to specify the ssh key location with the --keyfile argument or in the configuration file.
|
|
|
|
To be able to connect to the user's ssh agent when running simple_backup with sudo, make sure to preserve the SSH_AUTH_SOCK environment variable. For example:
|
|
|
|
```bash
|
|
sudo --preserve-env=SSH_AUTH_SOCK -s simple_backup [options]
|
|
```
|
|
|
|
or by editing the sudoers file.
|
|
If SSH key authentication is not available, password authentication will be used instead.
|
|
Check the man page for more details.
|