Я являюсь давним поклонником программки borgbackup. Однако, не мог не обратить внимание, что есть у нее и аналог, программка restic. Говорить буду от себя лично, в свете использования на своем компе с Fedora. По мере обнаружения каких-либо новых нюансов буду дописывать сюда, если есть какие-то идеи для тестов или вопросы - пишите.
Borgbackup написан на python, restic - на Go, соответственно в первом случае пакет состоит из вороха .py, во втором - из одного бинарника. Тут преимущество за restic, поскольку маловероятно, что его удастся сломать каким-нибудь обновлением, как у borgbackup уже ломалось что-то в монтировании при обновлении python.
При работе borgbackup работает всегда в один поток, restic многопоточный. Понятное дело, что restic в этом случае можно разогнать практически до космической скорости, если речь идет о выделенном сервере с кучей процессоров. Однако, если сервер невыделенный, то вариант borgbackup может быть предпочтительнее. Разные варианты использования могут быть с разными предпочтениями.
Обе программы могут работать с удаленными хранилищами, но borgbackup только по SSH, а restic еще с кучей других хранилищ, в том числе интегрируя rclone. Я это не тестировал, поскольку мне нужно локальное хранение, которое я потом rclone копирую в разные места самостоятельно. Да, при этом restic может брать данные из stdin (например, от tar), borgbackup, впрочем, тоже.
Репозитории каждой из программок устроен по разному, restic сразу создает 256 директорий с кучей вложенных файлов небольшого размера, имена напоминают какой-то hash, borgbackup делает поддиректории только для каждого из уровня бекапов, внутри каждой из директорий файлы в полгигабайта, из имени с порядковым номером. В данном случае restic создает нечто более тяжелое для файловой системы и, главное, синхронизация этого счастья по узкому каналу достаточно долгая должна быть. Пример:
Тестовый архив: find . | wc -l
344529
Репозиторий borg: find . | wc -l
626
Репозиторий restic: find . | wc -l
59654
Каждая из программок делает в хомяке пользователя, под которым работает, директорию кеша. По моему тесту, например, borg занял 512Мб, а restic - 220Мб. Однако, программки коренным образом отличаются отношением к очистке этого кеша. Если при инкрементальном архиве restic икнул и секунд за 20 все вернул обратно, то borgbackup озадачился и пошел полностью пересканировать, на что потратил около 50 минут.