Я тут пересмотрел современные бэкапилки. Выбор пал на duplicacy (не путать с duplicati и duplicity). Выбранный бесплатен для персонального использования. Платный для коммерческого, но копейки: $50 за тазик в год. Хотя cli версия опенсорсная и лицензция нигде не проверяется.
В основном современные бэкапилки с дедубликацией очень похожи между собой, делают одно и то же одинаковыми библиотеками. Самый фичастый с большим функционалом restic, но в нём нет сжатия. Со сжатием аналогичный borg, но из коробки не умеет лить в облака. Кстати, те вариант, которые льют в облака - не хранят локальную копию.
Ещё особняком стоит duplicati. Он фичастый, крутой, обоссаться прям. Есть реально всё, что можно придумать. Но на дотнете ?♂️ Вроде есть пакеты под всё кроме фряхи, но фиг знает, недоверительно. Хотя мне разок попалась компания, у которой прод на дотнете под линуксом на моно.
А duplicacy выбрал, в основном из-за этого:
-keep 0:777
-keep 33:386
-keep 22:144
-keep 9:44
-keep 3:11
-keep 1:1
Keep no snapshots older than 777 days
Keep 1 snapshot every 33 day(s) if older than 386 day(s)
Keep 1 snapshot every 22 day(s) if older than 144 day(s)
Keep 1 snapshot every 9 day(s) if older than 44 day(s)
Keep 1 snapshot every 3 day(s) if older than 11 day(s)
Keep 1 snapshot every 1 day(s) if older than 1 day(s).
Такое есть только у duplicati (который на дотнете). У остальных только день, месяц, год. Т.е. произвольный retention задать нельзя. Хотя по фичастости duplicacy довольно скромен. Скромнее того же restic или borg.
Скачиваем последний релиз
Переходим к папке, которую нужно резервировать и инициализируем место хранения
duplicacy init [command options] "snapshot id" "storage url"
duplicacy init -zstd -storage-name yandex-disk id_1 /app/yandex-disk/
.../app/www will be backed up to /app/yandex-disk/ with id id_1
Инкриментальное резервное копирование в папке осуществляется командой
duplicacy backup
Просмотр истории файла в архиве осуществляется командой
duplicacy history
Восстановление файла
duplicacy restore [command options] [--] [pattern] ...
duplicacy restore -r 3 [filename]
восстанавивает и директорию файлаПросмотр снепшотов в репозитории
duplicacy list
Удаление ненужных снапшотов
duplicacy prune -r 6
prune хранить одну версию каждые n дней старше m дней
duplicacy prune -keep {{n:m}}
ecample:
duplicacy prune -keep 1:7 # Keep a revision per (1) day for revisions older than 7 daysЧтобы найти файл в архиве
duplicacy cat | grep <имя файла>