/compare

LazyBackup vs rsync/cron

LazyBackup is a control plane for From→To transfers across SSH boxes, Docker volumes, database dumps, S3, and MCP—not another deduplicating archive CLI. It still uses rsync/scp under the hood for path jobs.

The wedge

Pick LazyBackup when you want UI + schedules + restore for the same class of work you already do with SSH and dump scripts.

SSH control plane

Reuse servers as From or To. Path transfers need a key; password auth still works for test/list helpers.

Docker volumes + DB dumps

Named-volume alpine packs (source server or this host’s Docker socket) and logical dumps. Restore from History—local, S3, Bro, or SSH dest with a key; retarget onto a different host.

Database sources

Postgres / MySQL / MariaDB / SQLite via native client or docker exec—not “rsync the data directory.”

Server → Server

Ephemeral SSH for direct rsync when reachable; otherwise pull then push via the LazyBackup host.

MCP for agents

Point Cursor/Claude at /mcp with a Bearer token. validate_backup and get_status; opt-in read_only or remote_exec. Destructive tools require confirm=true.

From → To, not a repo

Endpoints and source types—not a proprietary chunk store. Destinations are paths or object prefixes.

Side by side with rsync + cron

Honest comparison. LazyBackup does not replace every shell pipeline—it packages the operator loop.

Topicrsync + cronLazyBackup
What it isA transfer tool + a schedule you write yourself.A self-hosted control plane: jobs, history, retention, auth, restore UI.
From → ToYou invent paths, wrappers, and which host initiates the push/pull.Local, SSH server, or S3 on either side—including server→server (ephemeral SSH or host relay).
Docker volumesMount paths by hand; named volumes need extra docker run / alpine glue.sourceType=docker_volume packs a named volume to .tar.gz on the source server or this host’s Docker socket.
DatabasesSeparate pg_dump/mysqldump scripts, credentials, and cron.Postgres / MySQL / MariaDB → .sql.gz; SQLite → .sqlite.gz (native client or docker exec + inspect hints).
S3 / peersNot built in (rclone/s3cmd is another stack).S3-compatible profiles as source/dest; Bro Space mailbox peers (LazyBro or LB↔LB) with forced age encryption.
EncryptionYou layer age/gpg yourself before/after transfer.Optional age vault before land (forced for Bro); recovery recipients + export UX.
Agents / APIShell only.Streamable HTTP MCP at /mcp + Bearer API tokens (opt-in remote_exec or read_only; validate_backup and get_status).
When rsync winsOne-off syncs, existing battle-tested scripts, maximum DIY control.Use LazyBackup when you want the same transfers with UI, schedules, and restore—not when you only need a single rsync line.

Briefly: Restic, Borg, Duplicati

Different jobs. Those tools excel at deduplicated backup repositories. LazyBackup schedules and lands transfers between endpoints you already operate.

  • Restic / Borg

    Excellent deduplicating archive tools. You push into a repository format with chunking, pruning, and (usually) repo passwords. LazyBackup is not competing on dedup: it lands path trees, .tar.gz volumes, and .sql.gz dumps at a destination path or S3 prefix—optionally age-encrypted—and tracks runs in History.

  • Duplicati

    Desktop/server backup with many cloud backends and a full backup-set model. LazyBackup stays operator-focused on SSH boxes and container hosts: From→To endpoints, volume pack, DB dump, server→server relay, Status posture, and MCP—without replacing a general-purpose backup suite.

Many operators run both: Restic/Borg for laptop or whole-disk archives, LazyBackup for VPS path pulls, volume packs, and DB dumps into a known folder or S3 prefix.

Ready to try the control plane?

Deploy with Docker, add an SSH server, and create a From→To job. Optional age vault, Status posture, and MCP when you want them.