Add the capability to mark specific revisions or an entire backup/snapshot id as “permanent” to prevent them from being affected by prune
commands.
Better still, save a retention policy, including a “never prune” policy, in the storage for each snapshot id. That way, a simple prune -all
command would do the job. I now have to run 10 prune commands on individual snapshot ids to prevent pruning my four archival snapshots, which is inefficient and error-prone.
I can add an -exclude
option to not prune backups with certain ids.
That would help, but only a little. I have five snapshots I prune with -keep 0:365 -keep 7:90 -keep 1:7
, five with -keep 30:365 -keep 7:90 -keep 1:7
, and four “archive” snapshots that should never be pruned. Using an -exclude
option, I’d still need to run five prunes on individual storage ids with -keep 0:365 -keep 7:90 -keep 1:7
and one prune -a -keep 30:365 -keep 7:90 -keep 1:7
, reducing the number of prunes from 10 to 6, correct?
Isn’t there a significant amount of i/o each prune repeats that would be saved if a single prune could be used? If so, the ability to specify multiple -id
options would help further. (As I posted in Specify multiple -id options for copy and prune commands?, the CLI currently doesn’t return an error if multiple -id options are specified.)
And there’s still the risk of accidentally running a prune without the -exclude
options needed to protect the “archive” snapshots.