41 lines
1.1 KiB
Markdown
41 lines
1.1 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 (system-wide, no venv)
|
||
|
|
|
||
|
|
This assumes you are installing as root or via sudo.
|
||
|
|
|
||
|
|
From the repository root:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python3 -m pip install --upgrade pip
|
||
|
|
sudo python3 -m pip install .
|