1ac326eadaed00424a63d44b1de42d7eb2649456
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+
rsyncssh- 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.
-
Clone the repo
git clone https://code.hosting.hippogrief.nl/hippogrief/pobsync.git cd pobsync
-
Deploy the runtime into
/opt/pobsync(copies code into/opt/pobsync/liband installs/opt/pobsync/bin/pobsync)sudo ./scripts/deploy --prefix /opt/pobsync
-
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
Description
Languages
Python
98%
Shell
2%