Удалить конкретный snapshots.

restic -r [REPO] forget 2590e1ba

Оставить только последние 10 снимков по тегу Medoc, удалив остальные

restic -r [REPO] forget --tag Medoc --keep-last 10 --prune

Проверка перед удалением --dry-run

restic -r [REPO] forget --tag Medoc --keep-last 10 --prune --dry-run

  1. --tag Medoc – выбираем только снапшоты с тегом Medoc.
  2. --keep-last 10 – оставить последние 10 снимков.
  3. --prune – удаляет неиспользуемые данные из репозитория после удаления снапшотов.

Если много разных тегов/хостов, можно добавить --host <имя_хоста>, чтобы фильтровать только для конкретного сервера

🔹--keep-last N – последние N бэкапов
🔹--keep-daily N – для последних N дней, в которых есть один или несколько снимков, сохранять только самый последний снимок за каждый день
🔹--keep-within-daily duration – сохранять по одному последнему снимку, сделанному в течение указанного duration.

И так далее для разных временных отрезков. Наглядный типовой пример политики хранения:

--keep-within-daily 7d --keep-within-weekly 1m --keep-within-monthly 1y

Храним 7 дневных бэкапов, 4 недельных, 12 месячных.

Ошибка repo already locked

restic -r [REPO] unlock


Стратегия

Каждый день

restic -r [REPO] forget --tag Medoc --keep-last 10
restic -r [REPO] forget --tag 1с --keep-last 10
restic -r [REPO] forget --tag SQL --keep-last 10
restic -r [REPO] forget --tag users --keep-last 10

Удаляются записи о лишних снапшотах по каждому тегу.

Реальные данные ещё остаются в хранилище, так что процесс быстрый.

Можно объединить в один запуск:

restic -r [REPO] forget --tag Medoc --tag 1с --tag SQL --tag users --keep-last 10

Раз в неделю

restic -r [REPO] prune

Перепаковываются и удаляются все неиспользуемые блоки.

Процесс может быть долгим, но выполняется редко.

После prune место на диске реально освобождается.