I don’t think there’s an efficient way to handle this but I’d probably write a bash script to restic diff over all snapshots and grep for deleted files.
$ restic find --help
The "find" command searches for files or directories in snapshots stored in the
repo.
It can also be used to search for restic blobs or trees for troubleshooting.
Usage:
restic find [flags] PATTERN...
Examples:
restic find config.json
restic find --json "*.yml" "*.json"
restic find --json --blob 420f620f b46ebe8a ddd38656
restic find --show-pack-id --blob 420f620f
restic find --tree 577c2bc9 f81f2e22 a62827a9
restic find --pack 025c1d06
Flags:
--blob pattern is a blob-ID
-h, --help help for find
-H, --host host only consider snapshots for this host, when no snapshot ID is given
-i, --ignore-case ignore case for pattern
-l, --long use a long listing format showing size and mode
-N, --newest string newest modification date/time
-O, --oldest string oldest modification date/time
--pack pattern is a pack-ID
--path path only consider snapshots which include this (absolute) path, when no snapshot-ID is given
--show-pack-id display the pack-ID the blobs belong to (with --blob or --tree)
-s, --snapshot id snapshot id to search in (can be given multiple times)
--tag taglist only consider snapshots which include this taglist, when no snapshot-ID is given (default [])
--tree pattern is a tree-ID
I am working on systemd service/timer that does this:
backup.service - done
restic does the backup
rclone syncs the restic backup offsite
restic diffs the last two snapshots files, awk filters the files deleted from the snapshot which are then appended to a file. Command: ExecStart=/bin/bash -c 'exec /usr/bin/restic diff $$(exec /usr/bin/restic snapshots --json | exec /usr/bin/jq -r \'.[-2:][].id\') | exec /usr/bin/awk \'/^-/{for (i=2; i<NF; i++) printf $$i " "; print $$NF}\' >> $$RESTIC_DELETED_LOG' (stole part of this command from Script "restic diff" between the last two snapshots).
Updated the awk command to stop at the first separator (space character) in order to print the whole file, even if the file includes multiple spaces in its name.
backup-deleted-files-notify.service - wip
more manipulation will happen here as I need to filter the important directories
the consolidate, filtered list of deleted files will be emailed out daily at 20 o’clock