# 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