Use git.shouldnt.work as the clone URL, don't install wheel for building, as setuptools no longer needs it, list paramiko among the optional dependencies, and use the correct names of the remote backup options (--ssh-user, --ssh-host).
75 lines
2.6 KiB
Markdown
75 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
|
|
```
|
|
|
|
Optional dependencies are systemd-python to enable using systemd journal for logging, dbus-python for desktop notifications, and paramiko for remote backup.
|
|
|
|
## Install
|
|
To install the program, first clone the repository:
|
|
|
|
```bash
|
|
git clone https://git.shouldnt.work/fuxino/simple_backup.git
|
|
```
|
|
|
|
Then install the tools required to build the package:
|
|
|
|
```bash
|
|
pip install --upgrade build
|
|
```
|
|
|
|
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 --ssh-user and --ssh-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.
|