В настоящее время borg prune
может ограничить архивы, подлежащие сокращению, только с помощью общего префикса. Это работает для схем именования, в которых «релевантная для сокращения» часть имен архивов находится впереди, например, system-<hostname>-<date>
и userdata-<hostname>-<date>
, но на самом деле не работает ни для чего другого.
Добавление тегов, то есть списка произвольных строк (исключая ",", который был бы разделителем тегов), может помочь. Команда "prune" и другие команды, использующие "--prefix", получат параметр "--tags", и будут затронуты только архивы, в которых указаны теги _all_ (или _any_, обсудить) (и по этой причине они должны быть неизменяемыми).
РЕДАКТИРОВАТЬ: Возможно, другой подход, без дополнительных полей метаданных, обратное применение .
Имена уже есть. Мы могли бы просто добавить что-то вроде --tags some,tags
(всегда использовать здесь ,
качестве разделителя?) И --tag-delim -
(какой разделитель по умолчанию?).
tags = set(args.tags.split(args.tag_delim))
for archive in ...:
if set(archive.name.split(args.tag_delim)) <= tags:
... # prune
Смешение имен и тегов кажется нечистым. Теги могут быть отдельными метаданными архива.
Хорошая мысль, но я не уверен, что здесь это не нормально (как дизайнерское решение). # 866 заставил меня задуматься: «Хм, а зачем на самом деле _is_ имя архива?». «Переработка» его для тегирования - не очень чистая вещь, но мне кажется вполне практичной (если это 100% явное согласие). В некотором смысле «теги» были бы просто другим способом взглянуть на поле «имя».
Я бы хотел добавить в этот запрос функции теги / псевдонимы.
Проведя так много времени во вселенной git, мне хочется применить дополнительные теги к конкретным архивам borg.
Встраивание тегов в имя архива в настоящее время возможно, но это довольно непоследовательно, если вы хотите использовать несколько тегов для архива. Например, я уже использую имя архива для вставки имени хоста, метки времени и одного или двух других полей. Я также хочу добавить дополнительные теги, такие как «@latest» и «@ release-1». Это быстро становится беспорядком. Хуже того, мне иногда хочется переместить тег, например @latest, из одного архива в другой.
Если вы просто используете borg для резервного копирования файлов (конечно, это была его первоначальная миссия), вероятно, в тегах нет особой необходимости. Но если, как и я, вы обнаружили, что дедупликация borg очень полезна в других ситуациях, например, при архивировании очень больших файлов, используемых в конвейере анализа данных :-), то возможность назначать несколько тегов существующему архиву становится действительно важной.
В настоящее время я стараюсь создать исходный архив с разработанной мной схемой именования, а затем сразу же создать несколько дополнительных архивов с именами, начинающимися с "@" - @ beta2 , На сканирование / создание каждого из этих дополнительных архивов уходит пара минут, а в репозиторий добавляется всего несколько сотен байт, поскольку содержимое полностью идентично исходному архиву. (Ну, если файлы не изменились за эти пару минут.)
Было бы неплохо устранить это замедление, добавив метаданные тегов.
Я предполагаю, что пользовательский интерфейс будет примерно таким:
Создайте новый тег и укажите его на существующий архив:
borg tag [repo::archive-name] [tag1] [tag2] ...
Список всех тегов и архивов, на которые они указывают
borg tag --list [repo]
Удаление тегов может повторно использовать существующую команду borg delete
или также может быть параметром команды:
borg tag -d [repo] [tagname]
Спасибо, что обдумали это!
Только начал пробовать борг недавно, но хотел добавить +1 к идее пометки. Я вижу пример использования, относящийся к резервному копированию, когда теги используются для определения того, для какой из нескольких облачных служб выполняется резервное копирование архива. Я предполагаю (на основе других обсуждений), что облачное резервное копирование, скорее всего, будет осуществляться с помощью отдельного инструмента, который собирает теги и, например, обрабатывает создание файла * .tgz для загрузки. (Вы даже можете добавить частоту резервного копирования в качестве отдельного обнаруживаемого тега, но такие вещи будут входить в сферу действия инструмента резервного копирования, а не самого borg.)
См. Проблему № 2300 для возможной реализации тега. В настоящее время это больше похоже на git tag
чем на ярлыки Gmail - другими словами, для архива могут существовать дополнительные псевдонимы, но они должны быть уникальными. Возможно, будет нетрудно объединить эту идею с тем, что здесь обсуждается - метки, применяемые к нескольким архивам.
Самый полезный комментарий
Я бы хотел добавить в этот запрос функции теги / псевдонимы.
Проведя так много времени во вселенной git, мне хочется применить дополнительные теги к конкретным архивам borg.
Встраивание тегов в имя архива в настоящее время возможно, но это довольно непоследовательно, если вы хотите использовать несколько тегов для архива. Например, я уже использую имя архива для вставки имени хоста, метки времени и одного или двух других полей. Я также хочу добавить дополнительные теги, такие как «@latest» и «@ release-1». Это быстро становится беспорядком. Хуже того, мне иногда хочется переместить тег, например @latest, из одного архива в другой.
Если вы просто используете borg для резервного копирования файлов (конечно, это была его первоначальная миссия), вероятно, в тегах нет особой необходимости. Но если, как и я, вы обнаружили, что дедупликация borg очень полезна в других ситуациях, например, при архивировании очень больших файлов, используемых в конвейере анализа данных :-), то возможность назначать несколько тегов существующему архиву становится действительно важной.
В настоящее время я стараюсь создать исходный архив с разработанной мной схемой именования, а затем сразу же создать несколько дополнительных архивов с именами, начинающимися с "@" - @ beta2 , На сканирование / создание каждого из этих дополнительных архивов уходит пара минут, а в репозиторий добавляется всего несколько сотен байт, поскольку содержимое полностью идентично исходному архиву. (Ну, если файлы не изменились за эти пару минут.)
Было бы неплохо устранить это замедление, добавив метаданные тегов.
Я предполагаю, что пользовательский интерфейс будет примерно таким:
Создайте новый тег и укажите его на существующий архив:
borg tag [repo::archive-name] [tag1] [tag2] ...
Список всех тегов и архивов, на которые они указывают
borg tag --list [repo]
Удаление тегов может повторно использовать существующую команду
borg delete
или также может быть параметром команды:borg tag -d [repo] [tagname]
Спасибо, что обдумали это!