Files
pobsync/README.md

55 lines
1.6 KiB
Markdown

# pobsync
`pobsync` is a pull-based backup tool for sysadmins.
It creates rsync-based snapshots with hardlinking (`--link-dest`) and stores them centrally on a backup server.
Backups are pulled over SSH, not pushed, and are designed to be run from cron or manually.
* * *
## Design overview
* Runtime, config, logs and state live under `/opt/pobsync`
* Backup data itself is stored under a configurable `backup_root` (e.g. `/srv/backups`)
* Two snapshot types:
* scheduled
Participates in retention pruning (daily / weekly / monthly / yearly)
* manual
Kept outside the scheduled prune chain, defaults to hardlinking from the latest scheduled snapshot
* Minimal dependencies (currently only `PyYAML`)
* * *
## Requirements
* Python 3.11+
* `rsync`
* `ssh`
* Root or sudo access on the backup server
* SSH keys already configured between backup server and remotes
* * *
## Installation (canonical runtime under /opt/pobsync, no venv)
This assumes you are installing as root or via sudo.
1) Clone the repo
git clone https://code.hosting.hippogrief.nl/hippogrief/pobsync.git
cd pobsync
2) Deploy the runtime into `/opt/pobsync` (copies code into `/opt/pobsync/lib` and installs `/opt/pobsync/bin/pobsync`)
sudo ./scripts/deploy --prefix /opt/pobsync
3) Initialize runtime layout and global config
sudo /opt/pobsync/bin/pobsync install --backup-root /mnt/backups/pobsync
sudo /opt/pobsync/bin/pobsync doctor
## Updating
cd /path/to/pobsync
git pull
sudo ./scripts/deploy --prefix /opt/pobsync
sudo /opt/pobsync/bin/pobsync doctor