Borg
Verifying backup
Mount backup:
# Lists all archives in a repository
borg list /path/to/repo
# Mount an archive to a directory, look around, unmount
borg mount /path/to/repo::archive-name /path/to/mountpoint
ls /path/to/mountpoint
umount /path/to/mountpoint
Verify critical files with rsync 1:
cp -r /path/to/critical-files /path/to/comparison
SOURCE=/path/to/mountpoint/critical-files
DEST=/path/to/comparison
# `-r` : recurse into directories ;
# `-v` : list the files )
# `-n` : most important bit -- do *not* change anything ;
# `-c` : compare the contents via checksum not not mod-time & size (use `-a` otherwise) ;
# `--delete` : look for a symmetrical, not a uni-directional difference.
# Finally, `/` means "look inside the directory, and compare its *contents* to the destination".
#
# It will print a usual `rsync` output,
# - with one *<filename>* on a line for every "new" file in `${SOURCE}`
# - and one *"deleting <filename>"* line for each "new" file in `${DEST}`.
# - It may also print a few warnings, like *"skipping non-regular file <filename>"* for symlinks.
rsync -rvnc --delete ${SOURCE}/ ${DEST}
Verify the integrity/consistency of an archive:
# Check the consistency of an archive
borg check /path/to/repo
# Additionaly verify the data integrity of an archive (takes a long time)
borg check --verify-data /path/to/repo