Skip to content

Verify and Restore a Backup

This example mirrors an existing archive to a directory and makes a verified rehearsal copy. Complete a collection and parsing run first. A directory on the same physical disk is useful for testing, but does not protect against loss of that disk.

Add a Destination

Edit ~/.config/aesop-agentic/config.toml. Replace the default iCloud destination if you do not intend to use it, or add another destination:

[[destinations]]
name = "local-backup"
type = "local"
path = "~/Backups/Aesop"
required = true
timeout_seconds = 1800

Use an external volume or a separately managed backup location for independent storage. Each destination is a managed mirror; do not use a directory containing unrelated files.

Mirror and Verify

aesop backup --dry-run
aesop backup
aesop verify

The first command previews the operation. The second mirrors the archive and verifies the transfer. The third checks the archive and configured local/iCloud destinations; remote destination verification occurs during its backup operation. A failed or unavailable destination is reported separately from successful collection.

Make a Rehearsal Copy

Choose a new directory for a restore rehearsal:

aesop verify --restore-to ~/Aesop-Restore-Check

Inspect the reported verification results and open the restored Markdown library. Do not point the restore at an existing source store or your working archive. The command verifies configured local mirrors, then copies the primary archive into the new directory. It does not retrieve files from the backup and is not an independent disaster-recovery test. To test recovery from a lost primary archive, retrieve a separate copy directly from your backup directory or use rclone/Git LFS, point a separate configuration at that recovered copy, and run aesop --config /path/recovery.toml verify --local-only. See Configuration.

Handle an Unavailable Destination

Cloud-backed files may need downloading before verification can read them. Make the mirror available locally and retry aesop backup. The default per-attempt timeout is 1,800 seconds, with at most two retries. A completed collection attempt advances the schedule even when a backup fails; backup retries the existing archive immediately without recollecting it.